pygtk:使用 evince 从 pdf 中提取图像

问题描述

我正在尝试使用 pygtk/gi 和 Evince 从 pdf 中提取图像,并想出了这个:

import gi
gi.require_version("Gtk","3.0")
gi.require_version('EvinceDocument','3.0')
from gi.repository import Gtk,GdkPixbuf
from gi.repository import EvinceDocument

class MyWindow(Gtk.Window):
    def __init__(self,page,num):
        Gtk.Window.__init__(self,title="Hello World")

        img = Gtk.Image()

        pixbuf = doc.get_image(EvinceDocument.Image.new(page,num))
        img.set_from_pixbuf(pixbuf)

        self.add(img)


EvinceDocument.init()
pdf='file:///path/to/pdf.pdf'


doc = EvinceDocument.Document.factory_get_document(pdf)
num_pages = doc.get_info().n_pages

for page in range(num_pages):
    num_images_in_page=doc.get_image_mapping(doc.get_page(page)).length()
    print(page,num_images_in_page)
    for num in range(num_images_in_page):
        win = MyWindow(page,num)
        win.connect("destroy",Gtk.main_quit)
        win.show_all()
        Gtk.main()

它主要是有效的。因为它会在 pdf 中找到一些图像,但不是全部,对于一些 pdf,当它找到一个图像时,它会将它显示为几个部分图像(即使用颜色条绘制一个图并将该图显示一个图像,然后颜色条作为单独的图像)。

有没有更好的方法可以使用 Evince 在 pdf 中查找图像?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)