ReportLab과 함께 PdfReader를 사용하여 PDF 페이지를 가져 와서 저장 (모두 성공) 한 다음 다중 페이지 PDF를 가져 와서 동일한 작업을 수행하려고합니다. 한 번에 한 페이지 씩 PDF를 가져 오는 방법을 알고 있지만 한 페이지 이상을 가져 오는 데 어려움을 겪고 있습니다.ReportLab 다중 페이지 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'}]
고맙습니다. @ 패트릭 Maupin! 별도의 질문으로 게시 할 다른 문제가 있습니다. –
새 질문은 여기에 있습니다. http://stackoverflow.com/questions/43773477/reportlab-and-pdfrw-importing-scanned-pdf –