【问题标题】:Concatenating multiple page pdf into single page pdf将多页pdf连接成单页pdf
【发布时间】:2019-12-15 22:21:46
【问题描述】:

所以我有一个看起来像这样的多页 pdf

multipage

这目前有不止一页,但我想连接。这两个页面应该以某种方式连接起来,使其成为一页。 (字面意思是连接两个页面,同时消除它们之间的灰色区域。

gray area that needs to go away 我已经深入挖掘了 int pypdf2 和 pdf2image,但到目前为止还没有任何运气。我想知道是否有任何功能可以帮助我实现这一目标?

【问题讨论】:

  • 请更详细地描述最终输出应该是什么。您想要一个包含两个页面的 JPEG 吗?包含 2 个缩小版原始页面的 1 页 PDF?您希望新页面是纵向的还是横向的?
  • 一个新的 pdf,其尺寸是具有恒定宽度的长度之和
  • 这是很好的说明。一般来说,最好在原始问题中进行澄清,以便将来的读者/答案可以在一个位置阅读所有信息,而不必通过挖掘 cmets 来找出根本问题。这一点可能没有实际意义,因为看起来您可能已经有了答案。
  • 抱歉,我是社区新手
  • 不用担心。我在第一个问题上得到了同样的建议。

标签: python python-3.x pdf pdf-conversion


【解决方案1】:

您可以创建一个两倍于第一个页面对象的新页面对象(假设两个页面的高度相同)并将页面一个接一个地放在新页面中。

from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.pdf import PageObject


reader = PdfFileReader(open("file.pdf",'rb'))

page_1 = reader.getPage(0)
page_2 = reader.getPage(1)

#Creating a new file double the size of the original
translated_page = PageObject.createBlankPage(None, page_1.mediaBox.getWidth(), page_1.mediaBox.getHeight()*2)

#Adding the pages to the new empty page
translated_page.mergeScaledTranslatedPage(page_1, 1, 0, page_1.mediaBox.getHeight())
translated_page.mergePage(page_2)

writer = PdfFileWriter()
writer.addPage(translated_page)

with open('out.pdf', 'wb') as f:
    writer.write(f)

如果它们的高度不同,就这样做

translated_page = PageObject.createBlankPage(None, page_1.mediaBox.getWidth(), page_1.mediaBox.getHeight()+ page_2.mediaBox.getHeight())

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 2023-03-11
    • 2014-05-24
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多