Сохраняйте заполненные поля в PDF после вставки изображения - ReportLab и pdfrw - PullRequest
1 голос
/ 24 января 2020

У меня есть заполняемый PDF, и я заполнил некоторые поля и сохранил его.

Я могу добавить изображение в PDF, используя pdfrw и ReportLab; однако при сохранении PDF-данных данные, введенные в поля для заполнения, исчезли.

Может ли кто-нибудь указать мне правильное направление, чтобы я мог добавить изображение в PDF при сохранении заполненных полей?

Вот воспроизводимый код:

An пример PDF здесь

from PIL import Image
from reportlab.pdfgen.canvas import Canvas
from pdfrw import PdfReader
from pdfrw.buildxobj import pagexobj
from pdfrw.toreportlab import makerl

inpfn = 'input.pdf'
outfn = 'output.pdf'

pages = PdfReader(inpfn).pages
page=pagexobj(pages[0])
canvas = Canvas(outfn)

canvas.doForm(makerl(canvas, page))
im = Image.open("photo.jpg")
canvas.drawInlineImage(im, 20, 175, width=100, height=60)
canvas.save()

Вот выходной PDF. Как видите, изображение есть, но поля все пустые.

Here is the output PDF

Я могу убедиться, что данные из полей присутствуют, когда Первоначально PDF читается путем проверки структуры PDF с помощью:

for p in page:
   for a in p['/Annots']:
     print(a['/V'])

. Это распечатывает кучу данных (со странными символами), но я действительно могу видеть данные, которые были введены в форму (например, "trade_name")

...