PyGObject Evince

遅ればせながら gir で evince を使う方法がやっと解った。
以下のファイル形式がこの手段で開けるようです。
ようするに Evince で開けるファイルということですけど。

PDF, CBR/CBZ, PostScript, TIFF, XPS, Djvu

#!/usr/bin/env python3

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

URI = "file:///home/sasakima-nao/doc/pdfs/gero-map.pdf"
#URI = "file:///home/sasakima-nao/doc/pdfs/postscript.ps"
#URI = "file:///home/sasakima-nao/doc/pdfs/kokomin.tiff"
#URI = "file:///home/sasakima-nao/doc/pdfs/erohon.cbz"

EvinceDocument.init()

doc = EvinceDocument.Document.factory_get_document(URI)
model = EvinceView.DocumentModel.new_with_document(doc)
view = EvinceView.View()
view.set_model(model)

scroll = Gtk.ScrolledWindow()
scroll.add(view)

win = Gtk.Window()
win.add(scroll)
win.connect("delete-event", Gtk.main_quit)
win.resize(600, 600)
win.show_all()

Gtk.main()

URI は各自の手持ちに書き換えてね。

init は必須、呼ばないとエラーになる。
EvinceDocument はファイル形式につては自動判別してくれるようです。
EvinceView は GtkScrolledWindow 以外には乗せることができないので注意。
マルチページ分はスクロールすると表示される。

Djvu なんて知らなかったし今後も普及するとは思えないけど。
CBR はもちろん unrar 必須です、HONDA のバイクじゃ(以下略

TIFF はマルチページを作る手段を知らないのでそれは試していない。
アーカイブして拡張子を変えるだけの CBR/CBZ のほうが使い勝手がいいしね。

ま、実際のところ PDF 以外での利用はほぼ無いと思う。