def save_pdf(self, html):
chooser = Gtk.FileChooserDialog("Export PDF", None, Gtk.FileChooserAction.SAVE,
(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OK, Gtk.ResponseType.OK))
pdf_filter = Gtk.FileFilter()
pdf_filter.add_pattern("*.pdf")
pdf_filter.set_name("PDF Files")
chooser.add_filter(pdf_filter)
chooser.set_do_overwrite_confirmation(True)
response = chooser.run()
if response == Gtk.ResponseType.OK:
file_name = chooser.get_filename()
if not file_name.endswith(".pdf"):
file_name += ".pdf"
try:
pdfkit.from_string(html, file_name, options= {'quiet': '', 'page-size': 'Letter',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': "UTF-8",
'javascript-delay' : '550',
'no-outline': None})
except:
try:
#Failed so try with no options
pdfkit.from_string(html, file_name)
except:
#Pdf Export failed, show warning message
if not self.pdf_error_warning:
self.pdf_error_warning = True
print("\nRemarkable Error:\tPDF Export Failed!!")
pdf_fail_dialog = Gtk.MessageDialog(self, 0, Gtk.MessageType.ERROR,
Gtk.ButtonsType.CANCEL, "PDF EXPORT FAILED")
pdf_fail_dialog.format_secondary_text(
"File export to PDF was unsuccessful.")
pdf_fail_dialog.run()
pdf_fail_dialog.destroy()
elif response == Gtk.ResponseType.CANCEL:
pass
chooser.destroy()
self.window.set_sensitive(True)
评论列表
文章目录