seitime-frappe/frappe/utils/pdf.py
Anand Doshi f6cdd4a655 Merge remote-tracking branch 'frappe/develop' into v5.0
Conflicts:
	frappe/__version__.py
	frappe/core/doctype/communication/communication.py
	frappe/core/page/desktop/desktop.js
	frappe/hooks.py
	frappe/translations/ar.csv
	frappe/translations/es.csv
	frappe/translations/fr.csv
	frappe/translations/hr.csv
	frappe/translations/id.csv
	frappe/translations/ja.csv
	frappe/translations/nl.csv
	frappe/translations/pl.csv
	frappe/translations/pt-BR.csv
	frappe/translations/ru.csv
	frappe/translations/tr.csv
	frappe/translations/zh-cn.csv
	frappe/translations/zh-tw.csv
	frappe/utils/email_lib/html2text.py
	setup.py
2015-02-24 18:06:16 +05:30

37 lines
903 B
Python

# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
from __future__ import unicode_literals
import pdfkit, os, frappe
from frappe.utils import scrub_urls
def get_pdf(html, options=None):
if not options:
options = {}
options.update({
"print-media-type": None,
"background": None,
"images": None,
'margin-top': '15mm',
'margin-right': '15mm',
'margin-bottom': '15mm',
'margin-left': '15mm',
'encoding': "UTF-8",
'quiet': None,
'no-outline': None
})
if not options.get("page-size"):
options['page-size'] = frappe.db.get_single_value("Print Settings", "pdf_page_size") or "A4"
html = scrub_urls(html)
fname = os.path.join("/tmp", frappe.generate_hash() + ".pdf")
pdfkit.from_string(html, fname, options=options or {})
with open(fname, "rb") as fileobj:
filedata = fileobj.read()
os.remove(fname)
return filedata