Ich habe eine Pdf-Zusammenführung geschrieben, die eine Originaldatei mit einem Wasserzeichen zusammenführt.
Was ich jetzt tun möchte, ist, die Datei "document-output.pdf" im Browser über eine Django-Ansicht zu öffnen. Ich habe bereits Djangos verwandte Artikel überprüft, aber da mein Ansatz relativ anders ist, erstelle ich das PDF-Objekt nicht direkt, sondern verwende das Antwortobjekt als "Datei", also bin ich irgendwie verloren.
Also, wie kann ich tun, ist in einer Django-Ansicht?
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()