web-dev-qa-db-ja.com

PDFをPython

Pythonを使用して、マルチページPDFを一連のJPEGに変換しようとしています。 PDFを利用可能なツールを使用して簡単に個別のページに分割できますが、PDFを画像に変換できるものを見つけることができませんでした。

PILはPDFを読み取ることができないため機能しません。私が見つけた2つのオプションは、シェルでGhostScriptまたはImageMagickを使用することです。このプログラムはクロスプラットフォームである必要があるため、これは私にとって実行可能なオプションではありません。また、これらのプログラムのいずれかが、インストールおよび使用されるマシンで使用できるかどうか確信が持てません。

これを実行できるPythonライブラリはありますか?

46
Jaearess

ImageMagick には Pythonバインディング があります。

20
Adam Rosenfield

python ghostscript module( '$ pip install ghostscript'によってインストールされる)を使用して私のために働いたものは次のとおりです):

import ghostscript

def pdf2jpeg(pdf_input_path, jpeg_output_path):
    args = ["pdf2jpeg", # actual value doesn't matter
            "-dNOPAUSE",
            "-sDEVICE=jpeg",
            "-r144",
            "-sOutputFile=" + jpeg_output_path,
            pdf_input_path]
    ghostscript.Ghostscript(*args)

コンピューターにGhostscript 9.18もインストールしましたが、それ以外の方法ではおそらく機能しませんでした。

7
Idan Yacobi

Ghostscriptの依存関係を回避することはできません。 Imagemagickでさえ、そのPDF読み取り機能をGhostscriptに依存しています。これの理由は、PDF形式の複雑さです。aPDFにはビットマップ情報だけでなく、主にベクトル図形、透明度などが含まれます。さらに、把握するのは非常に複雑です。これらのオブジェクトのどれがどのページに表示されるか。

したがって、PDFページの正しいレンダリングは、純粋なPythonライブラリの範囲から明らかに外れています。

幸いなことに、Ghostscriptは多くのWindowsおよびLinuxシステムにプリインストールされています。これは、これらすべてのPDFプリンター(Adobe Acrobatを除く)でも必要になるためです。

4
Franz

Linuxを使用している場合、一部のバージョンには「pdftopbm」というコマンドラインユーティリティが付属しています。チェックアウト netpbm

1
Jay
1
mattbasta