Тааак...
С одной стороны, я совершенно не понимаю, почему это происходит, и не так много времени, чтобы отлаживать это прямо сейчас.
С другой стороны, у меня есть для вас обходной путь (и я пробовал обходной путь на v0.3, а также на текущем мастере github, и он работал у меня в обоих случаях).
Я начал с проверки того, что ваш код не работает на вашей странице и что он работает в другом PDF-файле. Затем я спросил себя: «Что произойдет, если я использую свой пример водяного знака для создания PDF-файла с вашей страницей в качестве водяного знака?» (потому что в нем используется один и тот же код формы XObject). Это сработало, поэтому я спросил себя: «Как это будет выглядеть, если я передам свою страницу с водяными знаками через ваш код reportlab?»
Интересно, что вся страница с водяными знаками, включая ваше изображение, прошла. Поэтому я изменил ваш код, чтобы он выполнял минимальные действия, которые выполняет водяной знак, в результате чего форма XObject помещается внутрь формы XObject, когда он передается в reportlab. Это сработало.
Вот слегка измененная версия вашего кода, которую я использовал для этого.
import sys
from reportlab.pdfgen import canvas
from pdfrw import PdfReader, PageMerge
from pdfrw.buildxobj import pagexobj
from pdfrw.toreportlab import makerl
inch = 72
fname, = sys.argv[1:]
page = PdfReader(fname,decompress=False).pages[0]
p = pagexobj(PageMerge().add(page).render())
c = canvas.Canvas('outstuff.pdf')
c.setPageSize([8.5*inch, 11.0*inch]) #Set page size (for portrait)
c.doForm(makerl(c, p))
c.showPage()
c.save()
person
Patrick Maupin
schedule
05.05.2017