尝试使用Python创建可编辑的pdf
我正在尝试创建一个带有复选框的PDF(使用python)。我一直在尝试使用pisa生成pdf,并在互联网上四处查看并尝试了不同的示例,但我无法找到如何生成可编辑的pdf 这是我最近的一次尝试:尝试使用Python创建可编辑的pdf,python,pdf,pdf-generation,pisa,Python,Pdf,Pdf Generation,Pisa,我正在尝试创建一个带有复选框的PDF(使用python)。我一直在尝试使用pisa生成pdf,并在互联网上四处查看并尝试了不同的示例,但我无法找到如何生成可编辑的pdf 这是我最近的一次尝试: import cStringIO import ho.pisa as pisa import os # shortcut for dumping all logs on screen pisa.showLogging() def HTML2PDF(data, filename, open=False)
import cStringIO
import ho.pisa as pisa
import os
# shortcut for dumping all logs on screen
pisa.showLogging()
def HTML2PDF(data, filename, open=False):
"""
Simple test showing how to create a PDF file from
PML Source String. Also shows errors and tries to start
the resulting PDF
"""
pdf = pisa.CreatePDF(cStringIO.StringIO(data), file(filename, "wb"))
if open and not(pdf.err):
os.startfile(str(filename))
return not pdf.err
if __name__=="__main__":
HTMLTEST = """
<html>
<body>
<form name="deleteForm" method="get" action="">
User 1 <input type="checkbox" name="user" value="delete" />
</form>
</body>
</html>
"""
HTML2PDF(HTMLTEST, "test.pdf", open=True)
导入cStringIO
将ho.pisa作为pisa导入
导入操作系统
#在屏幕上转储所有日志的快捷方式
pisa.showLogging()
def HTML2PDF(数据,文件名,打开=False):
"""
显示如何从中创建PDF文件的简单测试
PML源字符串。还显示错误并尝试启动
生成的PDF
"""
pdf=pisa.CreatePDF(cStringIO.StringIO(数据),文件名为“wb”))
如果打开且未打开(pdf.err):
os.startfile(str(文件名))
返回非pdf.err
如果名称=“\uuuuu main\uuuuuuuu”:
HTMLTEST=“”
用户1
"""
HTML2PDF(HTMLTEST,“test.pdf”,open=True)
表单给了我一个错误:
Traceback (most recent call last):
File "C:/Users/horeth/PycharmProjects/Reportlab/HTMLtoPF/Main.py", line 32, in
HTML2PDF(HTMLTEST, "test.pdf", open=True)
File "C:/Users/horeth/PycharmProjects/Reportlab/HTMLtoPF/Main.py", line 14, in HTML2PDF
pdf = pisa.CreatePDF(cStringIO.StringIO(data), file(filename, "wb"))
IOError: [Errno 13] Permission denied: 'test.pdf'
回溯(最近一次呼叫最后一次):
文件“C:/Users/horeth/PycharmProjects/Reportlab/HTMLtoPF/Main.py”,第32行,在
HTML2PDF(HTMLTEST,“test.pdf”,open=True)
文件“C:/Users/horeth/PycharmProjects/Reportlab/HTMLtoPF/Main.py”,第14行,在HTML2PDF中
pdf=pisa.CreatePDF(cStringIO.StringIO(数据),文件名为“wb”))
IOError:[Errno 13]权限被拒绝:“test.pdf”
复选框供读者决定是否需要删除用户
我想知道是否有一种方法可以用Python创建一个可编辑的PDF文档。举例来说,这只是我迄今为止所做的尝试之一。可能的原因。您没有对该目录的写入权限。该文件已存在,但您没有写入权限
import cStringIO as StringIO
from xhtml2pdf import pisa
from django.template.loader import get_template
from django.template import Context
from cgi import escape
def render_to_pdf(template_path, context_dict):
template = get_template(template_path)
html = template.render(context_dict)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-
1")), dest=result)
if not pdf.err:
return HttpResponse(result.getvalue(),
content_type='application/pdf')
return HttpResponse('We had some errors<pre>%s</pre>' %
escape(html))
创建一个单独的html文件
HTMLTEST.html
用户1
现在,我只想用一个用户和一个复选框创建一个PDF。它正在尝试在您没有写入权限的位置创建PDF。。。这是我从你的错误信息中猜到的我确实有权写信给它。但我想弄清楚的是,是否有一种方法可以在Python中创建可编辑的PDF。。。可能pdf是在一个锁定更改的程序中打开的(我认为acrobat不允许更改它打开的文件)。它与pdf内容无关。我确实有写权限,我尝试了上面的代码,但里面有稍微不同的HTML。我的目标是找到一种使用Python制作可编辑PDF的方法。我认为这种方法会奏效,我已经尝试了很多不同的方法,但没有一种有效。我也试过reportlab你没有权限写。。。无论是因为它试图在与您想象的不同的目录中打开它,还是因为pdf是在一个应用程序中打开的,该应用程序在打开文件时不允许更改文件。这与您正在编写的内容无关,我只是复制并粘贴了您的代码,它创建了pdf格式。。。也就是说。。。它没有添加复选框
def myview(request):
return render_to_pdf('HTMLTEST.html', { 'pagesize':'A4',})
<html>
<body>
<form name="deleteForm" method="get" action="">
User 1 <input type="checkbox" name="user" value="delete" />
</form>
</body>
</html>