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()

Antworten auf die Frage(8)

Ihre Antwort auf die Frage