2012-03-13 42 views
9

Tôi muốn viết ứng dụng python3/PyGTK3 hiển thị tệp PDF và tôi không thể tìm thấy gói python cho phép tôi thực hiện điều đó.
pypoppler, nhưng có vẻ đã lỗi thời (?) Và dường như không hỗ trợ python3 (?)Hiển thị tệp PDF với python3

Bạn có bất cứ đề xuất nào không?

EDIT: Lưu ý rằng tôi không cần các tính năng ưa thích, như biểu mẫu pdf, thao tác hoặc viết.

+0

muốn tạo file pdf ?? –

+0

Không, và rất có thể không bao giờ phải làm vậy. –

+0

ok ... bt tôi đã cung cấp cho bạn liên kết ... trước khi nhận xét này đến .... bt u có thể chck cũng .. –

Trả lời

11

Nó chỉ ra rằng phiên bản mới hơn của poppler-glib không yêu cầu ràng buộc như vậy. Chúng vận chuyển với các tập tin Intortpection GObject và do đó có thể được nhập khẩu và sử dụng như sau:

#!/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()) 

Thật dễ dàng phải không? Tôi mất nhiều giờ để tìm ra điều đó ...

Lưu ý rằng một người cần ít nhất là người mua sắm-0,18, nếu bạn muốn nhập GTK.

Dưới đây là một ví dụ rất nhỏ với một giao diện:

#!/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 nói rằng phiên bản phát triển mới nhất của Evince (mà tôi đoán sẽ sớm trở thành 3.4) hỗ trợ nhúng qua PyGObject, có thể sẽ hoạt động cho mục đích của bạn.

+0

Tôi không nghĩ rằng nó sẽ, bởi vì tôi không thể truy cập và sửa đổi các pixmap. Tôi muốn sử dụng một gói để hiển thị tệp pdf thành một bản đồ pixmap, sửa đổi nó bằng (nói) cairo và hiển thị nó. Xin lỗi, nếu câu hỏi của tôi chưa đủ rõ ràng –

Các vấn đề liên quan