我目前正在使用Django构建一个票务页面。我现在必须找到最好的方式'生成PDF票证,买家可以从我们的服务器下载哪些票证。
我在官方文档中研究了不同的方式和应用程序,包括ReportLab。机票将包含个人信息,我还计划在机票上加入条形码/二维码。我正在努力解决的问题是,哪些可用的应用程序是我最好的选择。从我的第一个理解,ReportLab可能不是最好的解决方案,我可能会更好地从HTML页面生成票证。
在我现在深入挖掘文档之前,我想问你们,如果你对我的目标有一些经验并且可以给我一些建议吗?
答案 0 :(得分:0)
在我的情况下,我使用了wkhtmltopdf
和pdfkit
。
阅读:https://learnbatta.com/blog/django-html-to-pdf-using-pdfkit-and-wkhtmltopdf-5/
答案 1 :(得分:0)
如果你想从HTML页面生成pdf,我建议你使用PhantomJS。
使用PhantomJS在子进程中打开URL并直接输出到STDOUT:
import subprocess
proc = subprocess.Popen(
['phantomjs', 'rasterize.js', url, '/dev/stdout'],
stdout=subprocess.PIPE
)
然后从STDOUT输出创建pdf:
import io
from PIL import Image
from tempfile import TemporaryFile
with TemporaryFile() as temp_pdf:
img = Image.open(io.BytesIO(proc.stdout.read()))
if img.mode == 'RGBA':
img = img.convert('RGB')
img.save(temp_pdf, "PDF", quality=100)