1. ホーム
  2. python

[解決済み] Pythonを使用して既存のPDFにテキストを追加する

2022-06-25 11:33:29

質問

Pythonを使用して既存のPDFにいくつかの余分なテキストを追加する必要があります。これを行うための最良の方法と、インストールする必要がある追加のモジュールは何ですか。

注:理想的には、私はこれをWindowsとLinuxの両方で実行できるようにしたいのですが、押しつけがましくLinuxのみで十分です。

編集 pyPDF レポートラボ は良さそうですが、どちらも既存のPDFを編集することはできませんので、他の選択肢はないでしょうか?

どのように解決するのですか?

これは古い投稿ですが、私は解決策を見つけるために長い時間を費やしました。 ReportLabとPyPDFだけを使ったまともなものに出会ったので、共有しようと思いました。

  1. を使ってPDFを読み込む PdfFileReader() と呼ぶことにします。 入力
  2. ReportLabを使用して追加するテキストを含む新しいpdfを作成し、これを文字列オブジェクトとして保存します。
  3. を使用して文字列オブジェクトを読み取ります。 PdfFileReader() と呼ぶことにします。 テキスト
  4. を使用して新しい PDF オブジェクトを作成します。 PdfFileWriter() を使用して、新しい PDF オブジェクトを作成します。 出力
  5. を繰り返し実行する 入力 を適用し .mergePage(*text*.getPage(0)) を、テキストを追加したい各ページに適用し、次に output.addPage() を使用して、変更したページを新しいドキュメントに追加します。

これは単純なテキストの追加によく効きます。 ドキュメントに透かしを入れるためのPyPDFのサンプルを参照してください。

以下、質問に答えるためのコードです。

packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
<do something with canvas>
can.save()
packet.seek(0)
input = PdfFileReader(packet)

ここから、入力ファイルのページを別の文書と結合することができます。