django - How to open a generated PDF file in browser? -


i have written pdf merger merges original file watermark.

what want open 'document-output.pdf' file in browser django view. checked django's related articles, since approach relatively different, don't directly create pdf object, using response object "file.", kind of lost.

so, how can in django view?

from pypdf import pdffilewriter, pdffilereader reportlab.pdfgen.canvas import canvas reportlab.pdfbase import pdfmetrics reportlab.pdfbase.ttfonts import ttfont  output = pdffilewriter() input = pdffilereader(file('file.pdf', 'rb'))  # 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 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 num in range(1, num_pages):     output.addpage(input.getpage(num))  outputstream = file("document-output.pdf", "wb") output.write(outputstream) outputstream.close() 

i know older post can use embed tag of html implement kind of functionality. e.g.:

<embed height="100%" width="100%"  name="plugin" src="filename.pdf"  type="application/pdf"> 

so in case, can send response using render response as:

return render_to_response("abc.html",{"filename":filename}) 

and in abc.html can put filename (with path) in embed tag, mentioned above.

hope helps.


Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -