He escrito una fusión Pdf que combina un archivo original con una marca de agua.¿Cómo abrir un archivo PDF generado en el navegador?
Lo que quiero hacer ahora es abrir el archivo 'document-output.pdf' en el navegador mediante una vista de Django. Ya revisé los artículos relacionados de Django, pero dado que mi enfoque es relativamente diferente, no creo directamente el objeto PDF, utilizando el objeto de respuesta como su "archivo", así que estoy un poco perdido.
Entonces, ¿cómo puedo hacer está en una vista de Django?
from pyPdf import PdfFileWriter, PdfFileReader
from reportlab.pdfgen.canvas import Canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
output = PdfFileWriter()
input = PdfFileReader(file('file.pdf', 'rb'))
# get number of pages
num_pages = input.getNumPages()
# register new chinese font
pdfmetrics.registerFont(TTFont('chinese_font','/usr/share/fonts/truetype/mac/LiHeiPro.ttf'))
# generate watermark on the fly
pdf = Canvas("watermark.pdf")
pdf.setFont("chinese_font", 12)
pdf.setStrokeColorRGB(0.5, 1, 0)
pdf.drawString(10, 830, "你好")
pdf.save()
# put on watermark
watermark = PdfFileReader(file('watermark.pdf', 'rb'))
page1 = input.getPage(0)
page1.mergePage(watermark.getPage(0))
# add processed pdf page
output.addPage(page1)
# then, add rest of pages
for num in range(1, num_pages):
output.addPage(input.getPage(num))
outputStream = file("document-output.pdf", "wb")
output.write(outputStream)
outputStream.close()
Sí, lo sé. En realidad, eso es lo que estoy pidiendo :) Cómo enviar contenido PDF a un objeto HttpResponse ya que se abrirá en el navegador, no como un archivo adjunto. – israkir
@israkir: Actualicé mi respuesta. Véase más arriba. –