当我从任何一个源PDF打印PDF时,文件大小下降并删除表单中呈现的文本框.简而言之,它平坦化文件.
这是我想要实现的行为.
以下代码使用另一个PDF作为源(我想要展平的一个)创建一个PDF,它也会写入文本框.
我可以得到没有文本框的PDF,展平吗?就像Adobe在PDF中打印PDF一样.
我的其他代码看起来像这样减去一些东西:
import os
import StringIO
from pyPdf import PdfFileWriter, PdfFileReader
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
directory = os.path.join(os.getcwd(), "source") # dir we are interested in
fif = [f for f in os.listdir(directory) if f[-3:] == 'pdf'] # get the PDFs
for i in fif:
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
can.rotate(-90)
can.save()
packet.seek(0)
new_pdf = PdfFileReader(packet)
fname = os.path.join('source', i)
existing_pdf = PdfFileReader(file(fname, "rb"))
output = PdfFileWriter()
nump = existing_pdf.getNumPages()
page = existing_pdf.getPage(0)
for l in range(nump):
output.addPage(existing_pdf.getPage(l))
page.mergePage(new_pdf.getPage(0))
outputStream = file("out-"+i, "wb")
output.write(outputStream)
outputStream.close()
print fName + " written as", i
总结:我有一个pdf,我添加一个文本框,覆盖信息和添加新的信息,然后我从该pdf打印pdf.文本框不再可编辑或不可移动.我想自动化该过程,但我尝试的一切仍然允许该文本框可编辑.