使用Python格式PDF / X-1a将HTML转换为PDF
发布时间:2020-12-20 13:42:45 所属栏目:Python 来源:网络整理
导读:我有一个网站,使用Django中名为“X HTML2PDF”的库将 HTML转换为PDF. 问题是我需要使用PDF / X-1a格式转换此PDF.我不知道是否可以改变XHTML2PDF中的格式,有人知道另一种选择吗? 视图: def book(request): # Prepare context data = {} data['today'] = dat
我有一个网站,使用Django中名为“X
HTML2PDF”的库将
HTML转换为PDF.
问题是我需要使用PDF / X-1a格式转换此PDF.我不知道是否可以改变XHTML2PDF中的格式,有人知道另一种选择吗? 视图: def book(request): # Prepare context data = {} data['today'] = datetime.date.today() data['farmer'] = 'Old MacDonald' data['animals'] = [('Cow','Moo'),('Goat','Baa'),('Pig','Oink')] # Render html content through html template with context template = get_template('book_number_one.html') html = template.render(Context(data)) # Write PDF to file file = open('test.pdf',"w+b") pisaStatus = pisa.CreatePDF(html.encode('utf-8'),dest=file,encoding='utf-8') # Return PDF document through a Django HTTP response file.seek(0) pdf = file.read() file.close() # Don't forget to close the file handle return HttpResponse(pdf,mimetype='application/pdf') 模板: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Background</title> <style> @page p1 { background-image: url("nu/COVER-FRONT-ES.png"); size: 210mm 210mm; @frame text { top: 6cm; left: 4cm; right: 4cm; bottom: 4cm; } } @page p2 { background-image: url("nu/001.png"); size: 210mm 210mm; @frame text { top: 6cm; left: 4cm; right: 4cm; bottom: 4cm; border:0; } } @font-face { font-family: 'Gilles'; src: url(/gilles/gilles.ttf); font-weight: normal; font-style: normal; } </style> </head> <body> <pdf:nextpage name="p1" /> <pdf:nextpage name="p2" /> <p class="page-2"> Lorem ipsum dolor sit amet,consectetur adipisicing elit. <br /> Vitae,natus,possimus,placeat consequuntur iste at sapiente perferendis <br /> delectus suscipit dolorem dignissimos quaerat quia ex fuga officia dolore <br /> asperiores sint mollitia.<br /> <br /> </p> </body> </html> 解决方法
我建议一个名为’django-easy-pdf’的库
https://pypi.python.org/pypi/django-easy-pdf 演示:here {% extends "easy_pdf/base.html" %} {% block content %} <div id="content"> <h1>Hi there!</h1> </div> {% endblock %} from easy_pdf.views import PDFTemplateView class HelloPDFView(PDFTemplateView): template_name = "hello.html" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |