2012-03-13 14 views
9

私は、PDFファイルを表示するpython3/PyGTK3アプリケーションを作成したいと思います。私はこれを行うためのpythonパッケージを見つけることができませんでした。
pypopplerがありますが、旧式(?)でpython3(?)をサポートしていないようですpython3でPDFファイルを表示

ご意見はありますか?

編集:pdfフォーム、操作、書き込みなどの高度な機能は必要ありません。

+0

は、PDFファイルを作成したいです? –

+0

いいえ、ほとんどそうする必要はありません。 –

+0

ok ... bt私はリンクを提供しました...このコメントが来る前に.... bt uもそれをchckできます.. –

答えて

11

新しいバージョンのpoppler-glibでは、バインディングは不要です。これらはGObjectのイントロスペクションファイルと一緒に出荷されるため、次のようにインポートして使用できます。

#!/usr/bin/python3 

from gi.repository import Poppler 

document = Poppler.Document.new_from_file("file:///home/me/some.pdf", None) 
print(document.get_pdf_version_string()) 

これは簡単でしたか?それを見つけるのに時間がかかりました...

GTKもインポートしたい場合は、少なくともpoppler-0.18が必要です。ここで

は、GUIを持つ別の最小限の例です。

#!/usr/bin/python3 

from gi.repository import Poppler, Gtk 

def draw(widget, surface): 
    page.render(surface) 

document = Poppler.Document.new_from_file("file:///home/me/some.pdf", None) 
page = document.get_page(0) 

window = Gtk.Window(title="Hello World") 
window.connect("delete-event", Gtk.main_quit) 
window.connect("draw", draw) 
window.set_app_paintable(True) 

window.show_all() 
Gtk.main() 
1

This postによると、Evinceの最新の開発版(まもなく3.4になると思う)はPyGObjectを使った埋め込みをサポートしていると言われています。

+0

ピクスマップにアクセスして修正することができなかったので、私はそうは思わない。 パッケージを使用してpdfファイルをpixmapにレンダリングし、(例えば)cairoで修正して表示したいと思います。 申し訳ありませんが、私の質問が十分に明確でない場合 –