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 でうまく表現されていないように思われますが、単に絶対配置された行から作成されているだけです (上記の最初のリンクを参照)。

考えられる回避策は次の 2 つです (解決できるかどうかは不明です)。

  • 複数のページを 1 ページに印刷し、ページを拡大縮小して読みやすくすることができます....
  • inkscapeなどでpdfを開きます。グループ化を解除すると、テーブルを構成する個々の要素にアクセスできるようになり、それらを自分に合った方法で組み合わせることができるようになります。

編集

別のベクター パッケージである libre office draw をご覧ください。その中でpdfを開いたところ、pdf構造の一部が保持され、個々の要素が編集されているようです。

EDIT 2役立つかもしれないpdftablesを 見てください。

PDFTables は、PDF ファイルからテーブルを抽出するのに役立ちます。

私はそれを試していません...私がそれを機能させることができるかどうかを確認するには、少し時間がかかるかもしれません.

于 2014-07-08T04:01:38.090 に答える