Когда я печатаю 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-файла. Текстовое поле становится недоступным для редактирования или перемещения. Я хотел автоматизировать этот процесс, но все, что я пробовал, по-прежнему позволяло редактировать это текстовое поле.