Python 3.x 使用python3显示PDF文件

Python 3.x 使用python3显示PDF文件,python-3.x,pygtk,pygobject,pdf-reader,pdf-rendering,Python 3.x,Pygtk,Pygobject,Pdf Reader,Pdf Rendering,我想编写一个显示PDF文件的python3/PyGTK3应用程序,但找不到允许我这样做的python包。 有,但它看起来过时了(?)而且似乎不支持python3(?) 你有什么建议吗 编辑:请注意,我不需要像pdf表单、操作或书写这样的花哨功能。说Evence的最新开发版本(我想很快将成为3.4版)支持通过PyGObject进行嵌入,这可能会满足您的需要。事实证明,新版本的poppler glib不需要绑定。它们随GObject自省文件一起提供,因此可以按如下方式导入和使用: #!/usr/bi

我想编写一个显示PDF文件的python3/PyGTK3应用程序,但找不到允许我这样做的python包。
有,但它看起来过时了(?)而且似乎不支持python3(?)

你有什么建议吗


编辑:请注意,我不需要像pdf表单、操作或书写这样的花哨功能。

说Evence的最新开发版本(我想很快将成为3.4版)支持通过PyGObject进行嵌入,这可能会满足您的需要。

事实证明,新版本的poppler glib不需要绑定。它们随GObject自省文件一起提供,因此可以按如下方式导入和使用:

#!/usr/bin/python3

import gi
gi.require_version('Poppler', '0.18')

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
import gi
gi.require_version('Poppler', '0.18')
gi.require_version('Gtk', '3.0')

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()

不,而且很可能永远都不需要。好吧……bt我给你提供了链接……在这篇评论发表之前……bt你也可以改变这一点……嵌入一些东西,比如ghostscript或其他查看器,可能是一种选择。不需要用Python那样编写。嵌入听起来不是一个可行的解决方案,因为我需要在显示pixmap之前操作它。从技术上讲,没有PyGTK 3这样的东西,它现在(有点令人困惑)被称为PyGObject。我不认为它会,因为我无法访问和修改pixmap。我想使用一个包将pdf文件呈现到一个pixmap,用(比如)cairo修改它并显示它。对不起,如果我的问题不够清楚的话