如何将 5 个 PDF 合并到一个页面中
How to combine 5 PDFs in one in the same page
我生成了很多 PDF,每 5 个 pdf,我想合并到一页上。
pdfs = ['out_mitry.pdf', 'out_cdg.pdf']
合并 = PdfFileMerger()
对于 pdf 中的 pdf:
merger.append(pdf)
merger.write("result.pdf")
merger.close()
我的实际结果是合并,但每个 pdf 都在一页上。
我想在一页中合并 5 个 pdf
我最近 运行 遇到了这样的问题并找到了解决方案。
我演示了两个单页文件的解决方案,您可以轻松地将其扩展到任意数量的 pdf。
让我们这样合并页面:
---------
| | |
| 1 | 2 |
| | |
---------
from PyPDF3 import PdfFileWriter, PdfFileReader
from PyPDF3.pdf import PageObject
pdf_filenames = ["out_mitry.pdf", "out_cdg.pdf"]
input1 = PdfFileReader(open(pdf_filenames[0], "rb"), strict=False)
input2 = PdfFileReader(open(pdf_filenames[1], "rb"), strict=False)
page1 = input1.getPage(0)
page2 = input2.getPage(0)
total_width = page1.mediaBox.upperRight[0] + page2.mediaBox.upperRight[0]
total_height = max([page1.mediaBox.upperRight[1], page2.mediaBox.upperRight[1]])
new_page = PageObject.createBlankPage(None, total_width, total_height)
# Add first page at the 0,0 position
new_page.mergePage(page1)
# Add second page with moving along the axis x
new_page.mergeTranslatedPage(page2, page1.mediaBox.upperRight[0], 0)
output = PdfFileWriter()
output.addPage(new_page)
output.write(open("result.pdf", "wb"))
我生成了很多 PDF,每 5 个 pdf,我想合并到一页上。
pdfs = ['out_mitry.pdf', 'out_cdg.pdf']
合并 = PdfFileMerger()
对于 pdf 中的 pdf: merger.append(pdf)
merger.write("result.pdf") merger.close()
我的实际结果是合并,但每个 pdf 都在一页上。 我想在一页中合并 5 个 pdf
我最近 运行 遇到了这样的问题并找到了解决方案。 我演示了两个单页文件的解决方案,您可以轻松地将其扩展到任意数量的 pdf。
让我们这样合并页面:
---------
| | |
| 1 | 2 |
| | |
---------
from PyPDF3 import PdfFileWriter, PdfFileReader
from PyPDF3.pdf import PageObject
pdf_filenames = ["out_mitry.pdf", "out_cdg.pdf"]
input1 = PdfFileReader(open(pdf_filenames[0], "rb"), strict=False)
input2 = PdfFileReader(open(pdf_filenames[1], "rb"), strict=False)
page1 = input1.getPage(0)
page2 = input2.getPage(0)
total_width = page1.mediaBox.upperRight[0] + page2.mediaBox.upperRight[0]
total_height = max([page1.mediaBox.upperRight[1], page2.mediaBox.upperRight[1]])
new_page = PageObject.createBlankPage(None, total_width, total_height)
# Add first page at the 0,0 position
new_page.mergePage(page1)
# Add second page with moving along the axis x
new_page.mergeTranslatedPage(page2, page1.mediaBox.upperRight[0], 0)
output = PdfFileWriter()
output.addPage(new_page)
output.write(open("result.pdf", "wb"))