1

PdfReader と ReportLab を使用して、PDF ページを取得して保存し (どちらも成功)、複数ページの PDF を取得して同じことを試みています。一度に 1 ページずつ PDF を取り込む方法は知っていますが、複数のページを取り込むのに苦労しています。

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

c = canvas.Canvas(Out_Folder+pdf_file_name)
c.setPageSize([11*inch, 8.5*inch])

page = PdfReader(folder+'2_VisionMissionValues.pdf',decompress=False).pages
p = pagexobj(page[0])
c.setPageSize([11*inch, 8.5*inch]) #Set page size (for landscape)
c.doForm(makerl(c, p))
c.showPage()

p3_ = PdfReader(m4folder+'Academy.pdf',decompress=False).pages

ここで迷ってしまいます。これは、最初のページを引っ張るだけで機能することを知っています....

p3 = pagexobj(p3_[0])

しかし、PDF のすべてのページを取り込みたい場合、どうすればよいかわかりません。私はこれを試しました:

p3 = [pagexobj(x) for x in p3_[:]]

しかし、アサーション エラーが発生しました (以下を参照)。

c.setPageSize([8.5*inch, 11*inch]) #Set page size (for portrait)
c.doForm(makerl(c, p3))
c.showPage()
c.save()


AssertionError: [{'/BBox': [0.0, 0.0, 792.0, 612.0], '/Filter': '/FlateDecode', '/FormType': 1, '/Matrix': [0, 1, -1, 0, 0, 0], '/Length': '56', '/Subtype': '/Form', '/Resources': {'/ProcSet': ['/PDF', '/ImageB', '/ImageC', '/ImageI'], '/XObject': {'/Im1': (8, 0)}}, '/Type': '/XObject'}, {'/BBox': [0.0, 0.0, 792.0, 612.0], '/Filter': '/FlateDecode', '/FormType': 1, '/Matrix': [0, 1, -1, 0, 0, 0], '/Length': '56', '/Subtype': '/Form', '/Resources': {'/ProcSet': ['/PDF', '/ImageB', '/ImageC', '/ImageI'], '/XObject': {'/Im2': (17, 0)}}, '/Type': '/XObject'}]
4

2 に答える 2