mar*_*all 8 python pdf poppler pdf-rendering
例如,我从网上抓了一个pdf
import requests
pdf = requests.get("http://www.scala-lang.org/docu/files/ScalaByExample.pdf")
Run Code Online (Sandbox Code Playgroud)
我想修改此代码以显示它
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()
Run Code Online (Sandbox Code Playgroud)
如何修改该document =行以使用包含pdf的变量pdf?
(我不介意使用popplerqt4或其他任何东西,如果这使它更容易.)
小智 5
这完全取决于您使用的操作系统。这些通常可能有帮助:
import os
os.system('my_pdf.pdf')
Run Code Online (Sandbox Code Playgroud)
或者
os.startfile('path_to_pdf.pdf')
Run Code Online (Sandbox Code Playgroud)
或者
import webbrowser
webbrowser.open(r'file:///my_pdf.pdf')
Run Code Online (Sandbox Code Playgroud)
使用临时文件怎么样?
import tempfile
import urllib
import urlparse
import requests
from gi.repository import Poppler, Gtk
pdf = requests.get("http://www.scala-lang.org/docu/files/ScalaByExample.pdf")
with tempfile.NamedTemporaryFile() as pdf_contents:
pdf_contents.file.write(pdf)
file_url = urlparse.urljoin(
'file:', urllib.pathname2url(pdf_contents.name))
document = Poppler.Document.new_from_file(file_url, None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5527 次 |
| 最近记录: |