diff --git a/frappe/boot.py b/frappe/boot.py index 5531d844cd..78a498801d 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -162,4 +162,4 @@ def load_print(bootinfo, doclist): load_print_css(bootinfo, print_settings) def load_print_css(bootinfo, print_settings): - bootinfo.print_css = frappe.get_attr("frappe.templates.pages.print.get_print_style")(print_settings.print_style or "Modern") + bootinfo.print_css = frappe.get_attr("frappe.templates.pages.print.get_print_style")(print_settings.print_style or "Modern", for_legacy=True) diff --git a/frappe/change_log/current/fonts_in_print.md b/frappe/change_log/current/fonts_in_print.md new file mode 100644 index 0000000000..bb19362961 --- /dev/null +++ b/frappe/change_log/current/fonts_in_print.md @@ -0,0 +1 @@ +- Change print font from Setup > Print Settings or set it for each Print Format. Font options are "Default", "Arial", "Helvetica", "Verdana", "Monospace". diff --git a/frappe/desk/desk_page.py b/frappe/desk/desk_page.py index 64036d7bb7..0138c56a19 100644 --- a/frappe/desk/desk_page.py +++ b/frappe/desk/desk_page.py @@ -12,7 +12,6 @@ def get(name): """ page = frappe.get_doc('Page', name) if page.is_permitted(): - print "here" page.load_assets() return page else: diff --git a/frappe/print/doctype/print_format/print_format.json b/frappe/print/doctype/print_format/print_format.json index 73f426fa83..cd47d3bec0 100644 --- a/frappe/print/doctype/print_format/print_format.json +++ b/frappe/print/doctype/print_format/print_format.json @@ -19,12 +19,10 @@ "search_index": 0 }, { - "depends_on": "eval:!doc.custom_format", - "fieldname": "edit_format", - "fieldtype": "Button", - "label": "Edit Format", - "permlevel": 0, - "precision": "" + "fieldname": "disabled", + "fieldtype": "Check", + "label": "Disabled", + "permlevel": 0 }, { "fieldname": "column_break_3", @@ -52,23 +50,18 @@ "search_index": 1 }, { - "fieldname": "disabled", + "fieldname": "custom_format", "fieldtype": "Check", - "label": "Disabled", - "permlevel": 0 + "label": "Custom Format", + "permlevel": 0, + "precision": "" }, { + "depends_on": "custom_format", "fieldname": "section_break_6", "fieldtype": "Section Break", "permlevel": 0 }, - { - "fieldname": "custom_format", - "fieldtype": "Check", - "label": "Custom Format", - "permlevel": 0, - "precision": "" - }, { "default": "Server", "depends_on": "custom_format", @@ -99,6 +92,44 @@ "reqd": 0, "search_index": 0 }, + { + "depends_on": "eval:!doc.custom_format", + "fieldname": "section_break_9", + "fieldtype": "Section Break", + "permlevel": 0, + "precision": "" + }, + { + "depends_on": "eval:!doc.custom_format", + "fieldname": "edit_format", + "fieldtype": "Button", + "label": "Edit Format", + "permlevel": 0, + "precision": "" + }, + { + "fieldname": "column_break_11", + "fieldtype": "Column Break", + "permlevel": 0, + "precision": "" + }, + { + "default": "Default", + "depends_on": "eval:!doc.custom_format", + "fieldname": "font", + "fieldtype": "Select", + "label": "Font", + "options": "Default\nArial\nHelvetica\nVerdana\nMonospace", + "permlevel": 0, + "precision": "" + }, + { + "depends_on": "custom_format", + "fieldname": "section_break_13", + "fieldtype": "Section Break", + "permlevel": 0, + "precision": "" + }, { "depends_on": "custom_format", "fieldname": "print_format_help", @@ -134,7 +165,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2015-02-05 05:11:42.667447", + "modified": "2015-07-15 08:01:06.284031", "modified_by": "Administrator", "module": "Print", "name": "Print Format", diff --git a/frappe/print/doctype/print_settings/print_settings.json b/frappe/print/doctype/print_settings/print_settings.json index f549593eb2..23ffbaf350 100644 --- a/frappe/print/doctype/print_settings/print_settings.json +++ b/frappe/print/doctype/print_settings/print_settings.json @@ -42,9 +42,13 @@ "permlevel": 0 }, { - "fieldname": "column_break_6", - "fieldtype": "Column Break", - "permlevel": 0 + "default": "Default", + "fieldname": "font", + "fieldtype": "Select", + "label": "Font", + "options": "Default\nArial\nHelvetica\nVerdana\nMonospace", + "permlevel": 0, + "precision": "" }, { "description": "In points. Default is 9.", @@ -53,6 +57,11 @@ "label": "Font Size", "permlevel": 0 }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break", + "permlevel": 0 + }, { "default": "1", "description": "Print with Letterhead, unless unchecked in a particular Document", @@ -76,7 +85,7 @@ ], "icon": "icon-cog", "issingle": 1, - "modified": "2015-03-25 07:10:38.893958", + "modified": "2015-07-15 08:03:23.743143", "modified_by": "Administrator", "module": "Print", "name": "Print Settings", diff --git a/frappe/public/js/frappe/dom.js b/frappe/public/js/frappe/dom.js index 1334922733..386e40d884 100644 --- a/frappe/public/js/frappe/dom.js +++ b/frappe/public/js/frappe/dom.js @@ -24,10 +24,20 @@ frappe.dom = { // execute the script globally document.getElementsByTagName('head')[0].appendChild(el); }, - set_style: function(txt) { + set_style: function(txt, id) { if(!txt) return; + var se = document.createElement('style'); se.type = "text/css"; + + if (id) { + var element = document.getElementById(id); + if (element) { + element.parentNode.removeChild(element); + } + se.id = id; + } + if (se.styleSheet) { se.styleSheet.cssText = txt; } else { diff --git a/frappe/public/js/frappe/form/print.js b/frappe/public/js/frappe/form/print.js index 61f86deb60..f5ac5d8e46 100644 --- a/frappe/public/js/frappe/form/print.js +++ b/frappe/public/js/frappe/form/print.js @@ -30,6 +30,7 @@ frappe.ui.form.PrintPreview = Class.extend({ .on("change", function() { if(me.is_old_style()) { me.wrapper.find(".btn-download-pdf").toggle(false); + me.set_style(); me.preview_old_style(); } else { me.wrapper.find(".btn-download-pdf").toggle(true); @@ -91,8 +92,9 @@ frappe.ui.form.PrintPreview = Class.extend({ }, preview: function() { var me = this; - this.get_print_html(function(html) { - me.wrapper.find(".print-format").html(html); + this.get_print_html(function(out) { + me.wrapper.find(".print-format").html(out.html); + me.set_style(out.style); }); }, printit: function() { @@ -100,21 +102,19 @@ frappe.ui.form.PrintPreview = Class.extend({ }, new_page_preview: function(printit) { var me = this; - this.get_print_html(function(html) { - var w = window.open("/print?" - +"doctype="+encodeURIComponent(me.frm.doc.doctype) - +"&name="+encodeURIComponent(me.frm.doc.name) - +(printit ? "&trigger_print=1" : "") - +"&format="+me.selected_format() - +"&no_letterhead="+(me.with_letterhead() ? "0" : "1")); - if(!w) { - msgprint(__("Please enable pop-ups")); return; - } - }); + var w = window.open("/print?" + +"doctype="+encodeURIComponent(me.frm.doc.doctype) + +"&name="+encodeURIComponent(me.frm.doc.name) + +(printit ? "&trigger_print=1" : "") + +"&format="+me.selected_format() + +"&no_letterhead="+(me.with_letterhead() ? "0" : "1")); + if(!w) { + msgprint(__("Please enable pop-ups")); return; + } }, get_print_html: function(callback) { frappe.call({ - method: "frappe.templates.pages.print.get_html", + method: "frappe.templates.pages.print.get_html_and_style", args: { doc: this.frm.doc, print_format: this.selected_format(), @@ -181,5 +181,8 @@ frappe.ui.form.PrintPreview = Class.extend({ }, with_letterhead: function() { return this.print_letterhead.is(":checked") ? 1 : 0; + }, + set_style: function(style) { + frappe.dom.set_style(style || frappe.boot.print_css, "print-style"); } }) diff --git a/frappe/templates/includes/list/row_template.html b/frappe/templates/includes/list/row_template.html index 599d4f88ac..3741d62d8b 100644 --- a/frappe/templates/includes/list/row_template.html +++ b/frappe/templates/includes/list/row_template.html @@ -1,7 +1,7 @@ {% set doc = frappe.get_doc(doc) %} {% set subject = doc.get(meta.title_field or "name") %} {% set route = ((is_web_form is defined and is_web_form and "{0}?name={1}".format(pathname, doc.name)) - or (doc.get("get_route") and doc.get_route()) + or (doc.get_route and doc.get_route()) or "{0}/{1}".format(pathname or doc.doctype, doc.name)) %}