Я делаю pdf-редактор в python, повторно используя библиотеки evince и Gtk.
Я хотел бы добавить ссылку одним щелчком, но я не знаю, как преобразовать позицию курсора, полученную изсобытие click для позиции и страницы в документе pdf.
Я также хотел бы добавить аннотации (например, выделение), это должно быть реализовано в evince, но я не знаю, как импортировать эту функциюв Python.
Я использую библиотеку Evince:
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gio, GLib
from gi.repository import EvinceDocument
from gi.repository import EvinceView
from gi.repository import Gdk
Я сделал окно GTK class PdfWindow(Gtk.ApplicationWindow)
, где я определил документ evince и необходимые окна:
self.scroll = Gtk.ScrolledWindow()
self.add(self.scroll)
EvinceDocument.init()
self.open_file("file.pdf")
self.doc = EvinceDocument.Document.factory_get_document("file://file.pdf")
self.view = EvinceView.View()
model = EvinceView.DocumentModel()
model.set_document(self.doc)
self.model = model
self.view.set_model(self.model)
self.view.connect('external-link', self.__handle_link_cb)
self.view.connect('event', self.click_event_cb)
Позиция курсора, которую я получаю в click_event_cb, который обрабатывает событие click, - это позиция в окне, а не позиция x, y в pdf. Не знаю, как интегрировать аннотации, как они есть в приложении evince. кто-нибудь может помочь?