0

我有一个 PDF,其中有一个大表拆分为页面,所以我需要将每页表连接到一个大页面中的一个大表中。

PyPDF2 或其他库可以做到这一点吗?

干杯

4

2 回答 2

1

只是在做类似的事情,它需要一个输入 pdf 并通过一个配置文件,您可以设置单页的最终模式。使用PyPDF2实现,但它仍然存在一些 pdf 文件的问题(必须深入挖掘)。 https://github.com/Lageos/pdf-stitcher

原则上,将页面权限添加到另一个页面的工作方式如下:

import PyPDF2

with open('input.pdf', 'rb') as input_file:
    # load input pdf
    input_pdf = PyPDF2.PdfFileReader(input_file)

    # start new PyPDF2 PageObject
    output_pdf = input_pdf.getPage(page_number)

    # get second page PyPDF2 PageObject
    second_pdf = input_pdf.getPage(second_page_number)

    # dimensions for offset from loaded page (adding it to the right)
    offset_x = output_pdf.mediaBox[2]
    offset_y = 0

    # add second page to first one
    output_pdf.mergeTranslatedPage(second_pdf, offset_x, offset_y, expand=True)

    # write finished pdf
    with open('output.pdf', 'wb') as out_file:
            write_pdf = PyPDF2.PdfFileWriter()
            write_pdf.addPage(output_pdf)
            write_pdf.write(out_file)

在下面添加页面需要offset_y. 您可以从中获取金额offset_y = first_pdf.mediaBox[3]

于 2016-01-07T02:58:19.677 回答
0

我的理解是,这很难。见这里这里

问题似乎是表格在 pdf 中的表示不是很好,而是简单地由绝对定位的行组成(参见上面的第一个链接)。

以下是两种可能的解决方法(不确定他们是否会为您解决):

  • 您可以在一页上打印多页并缩放页面以使其可读....
  • 用inkscape或类似的东西打开pdf。取消分组后,您应该可以访问组成表格的各个元素,并能够以适合您的方式组合它们

编辑

看看 libre office draw,另一个矢量包。我刚刚在其中打开了一个 pdf,它似乎保留了一些 pdf 结构并编辑了单个元素。

编辑 2 看看可能有帮助的pdftables 。

PDFTables 有助于从 PDF 文件中提取表格。

不过我还没有尝试过......可能有一段时间后看看我是否可以让它工作。

于 2014-07-08T04:01:38.090 回答