Wie öffne ich eine generierte PDF-Datei im Browser?
Ich habe eine PDF-Zusammenführung geschrieben, bei der eine Originaldatei mit einem Wasserzeichen zusammengeführt wird.
Ich möchte jetzt die Datei 'document-output.pdf' im Browser mit einer Django-Ansicht öffnen. Ich habe bereits die verwandten Artikel von Django geprüft, aber da mein Ansatz relativ unterschiedlich ist, erstelle ich das PDF-Objekt nicht direkt, indem ich das Antwortobjekt als "Datei" verwende. Ich bin also irgendwie verloren.
So, wie kann ich das in einer Django-Ansicht machen?
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()