From 8649c1812507c51f23b8bba04562adade835800e Mon Sep 17 00:00:00 2001 From: Rahul Agrawal <12agrawalrahul@gmail.com> Date: Sat, 10 Jan 2026 10:22:00 +0530 Subject: [PATCH 1/3] feat: allow use of chrome pdf generator for standard print format --- .../doctype/print_settings/print_settings.json | 9 ++++++++- .../doctype/print_settings/print_settings.py | 1 + frappe/printing/page/print/print.js | 12 ++++++++++-- frappe/utils/print_utils.py | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/frappe/printing/doctype/print_settings/print_settings.json b/frappe/printing/doctype/print_settings/print_settings.json index 2a05fcbcd5..8c259f1944 100644 --- a/frappe/printing/doctype/print_settings/print_settings.json +++ b/frappe/printing/doctype/print_settings/print_settings.json @@ -8,6 +8,7 @@ "pdf_settings", "send_print_as_pdf", "repeat_header_footer", + "use_chrome_for_standard_format", "column_break_4", "pdf_page_size", "pdf_page_height", @@ -170,13 +171,19 @@ "fieldname": "pdf_page_width", "fieldtype": "Float", "label": "PDF Page Width (in mm)" + }, + { + "default": "0", + "fieldname": "use_chrome_for_standard_format", + "fieldtype": "Check", + "label": "Use Chrome for Standard Format" } ], "icon": "fa fa-cog", "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2024-03-23 16:03:35.392721", + "modified": "2026-01-10 08:47:37.915137", "modified_by": "Administrator", "module": "Printing", "name": "Print Settings", diff --git a/frappe/printing/doctype/print_settings/print_settings.py b/frappe/printing/doctype/print_settings/print_settings.py index dbb19519a9..d0c6e593af 100644 --- a/frappe/printing/doctype/print_settings/print_settings.py +++ b/frappe/printing/doctype/print_settings/print_settings.py @@ -62,6 +62,7 @@ class PrintSettings(Document): print_style: DF.Link | None repeat_header_footer: DF.Check send_print_as_pdf: DF.Check + use_chrome_for_standard_format: DF.Check with_letterhead: DF.Check # end: auto-generated types diff --git a/frappe/printing/page/print/print.js b/frappe/printing/page/print/print.js index 9a5551b7fb..7ca545a867 100644 --- a/frappe/printing/page/print/print.js +++ b/frappe/printing/page/print/print.js @@ -710,8 +710,16 @@ frappe.ui.form.PrintView = class { ); } } - - render_page(method, printit = false, pdf_generator = "wkhtmltopdf") { + get_pdf_generator(pdf_generator) { + if (!pdf_generator) { + pdf_generator = cint(this.print_settings.use_chrome_for_standard_format) + ? "chrome" + : "wkhtmltopdf"; + } + return pdf_generator; + } + render_page(method, printit = false, pdf_generator) { + pdf_generator = this.get_pdf_generator(pdf_generator); let w = window.open( frappe.urllib.get_full_url( method + diff --git a/frappe/utils/print_utils.py b/frappe/utils/print_utils.py index dfb17f1038..9c5e903f3c 100644 --- a/frappe/utils/print_utils.py +++ b/frappe/utils/print_utils.py @@ -175,7 +175,7 @@ def find_or_download_chromium_executable(): import shutil from pathlib import Path - if chromium_path := shutil.which(frappe.get_common_site_config().chromium_path): + if chromium_path := shutil.which(frappe.get_common_site_config().get("chromium_path", "")): return chromium_path bench_path = frappe.utils.get_bench_path() From 08c5d095afccdacd3ef72daafbdcf5268e3ad1de Mon Sep 17 00:00:00 2001 From: Rahul Agrawal <12agrawalrahul@gmail.com> Date: Sat, 10 Jan 2026 11:13:42 +0530 Subject: [PATCH 2/3] fix: use select instead of check --- .../doctype/print_settings/print_settings.json | 14 ++++++++------ .../doctype/print_settings/print_settings.py | 2 +- frappe/printing/page/print/print.js | 4 +--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/frappe/printing/doctype/print_settings/print_settings.json b/frappe/printing/doctype/print_settings/print_settings.json index 8c259f1944..7e617e3603 100644 --- a/frappe/printing/doctype/print_settings/print_settings.json +++ b/frappe/printing/doctype/print_settings/print_settings.json @@ -8,7 +8,7 @@ "pdf_settings", "send_print_as_pdf", "repeat_header_footer", - "use_chrome_for_standard_format", + "pdf_generator_for_standard_format", "column_break_4", "pdf_page_size", "pdf_page_height", @@ -173,17 +173,18 @@ "label": "PDF Page Width (in mm)" }, { - "default": "0", - "fieldname": "use_chrome_for_standard_format", - "fieldtype": "Check", - "label": "Use Chrome for Standard Format" + "default": "wkhtmltopdf", + "fieldname": "pdf_generator_for_standard_format", + "fieldtype": "Select", + "label": "PDF Generator for Standard Format", + "options": "wkhtmltopdf\nchrome" } ], "icon": "fa fa-cog", "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2026-01-10 08:47:37.915137", + "modified": "2026-01-10 11:08:14.847391", "modified_by": "Administrator", "module": "Printing", "name": "Print Settings", @@ -198,6 +199,7 @@ } ], "quick_entry": 1, + "row_format": "Dynamic", "sort_field": "creation", "sort_order": "DESC", "states": [], diff --git a/frappe/printing/doctype/print_settings/print_settings.py b/frappe/printing/doctype/print_settings/print_settings.py index d0c6e593af..8342c9b535 100644 --- a/frappe/printing/doctype/print_settings/print_settings.py +++ b/frappe/printing/doctype/print_settings/print_settings.py @@ -24,6 +24,7 @@ class PrintSettings(Document): enable_raw_printing: DF.Check font: DF.Literal["Default", "Helvetica Neue", "Arial", "Helvetica", "Inter", "Verdana", "Monospace"] font_size: DF.Float + pdf_generator_for_standard_format: DF.Literal["wkhtmltopdf", "chrome"] pdf_page_height: DF.Float pdf_page_size: DF.Literal[ "A0", @@ -62,7 +63,6 @@ class PrintSettings(Document): print_style: DF.Link | None repeat_header_footer: DF.Check send_print_as_pdf: DF.Check - use_chrome_for_standard_format: DF.Check with_letterhead: DF.Check # end: auto-generated types diff --git a/frappe/printing/page/print/print.js b/frappe/printing/page/print/print.js index 7ca545a867..c6c3978fa4 100644 --- a/frappe/printing/page/print/print.js +++ b/frappe/printing/page/print/print.js @@ -712,9 +712,7 @@ frappe.ui.form.PrintView = class { } get_pdf_generator(pdf_generator) { if (!pdf_generator) { - pdf_generator = cint(this.print_settings.use_chrome_for_standard_format) - ? "chrome" - : "wkhtmltopdf"; + pdf_generator = this.print_settings.pdf_generator_for_standard_format || "wkhtmltopdf"; } return pdf_generator; } From a046710bd1d44f23752aadb7a344dc2f8e2009bc Mon Sep 17 00:00:00 2001 From: Rahul Agrawal <12agrawalrahul@gmail.com> Date: Sat, 10 Jan 2026 11:56:54 +0530 Subject: [PATCH 3/3] fix: rename select field --- .../doctype/print_settings/print_settings.json | 10 +++++----- .../printing/doctype/print_settings/print_settings.py | 2 +- frappe/printing/page/print/print.js | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frappe/printing/doctype/print_settings/print_settings.json b/frappe/printing/doctype/print_settings/print_settings.json index 7e617e3603..d3a8189798 100644 --- a/frappe/printing/doctype/print_settings/print_settings.json +++ b/frappe/printing/doctype/print_settings/print_settings.json @@ -8,7 +8,7 @@ "pdf_settings", "send_print_as_pdf", "repeat_header_footer", - "pdf_generator_for_standard_format", + "pdf_generator", "column_break_4", "pdf_page_size", "pdf_page_height", @@ -174,9 +174,9 @@ }, { "default": "wkhtmltopdf", - "fieldname": "pdf_generator_for_standard_format", + "fieldname": "pdf_generator", "fieldtype": "Select", - "label": "PDF Generator for Standard Format", + "label": "PDF Generator", "options": "wkhtmltopdf\nchrome" } ], @@ -184,7 +184,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2026-01-10 11:08:14.847391", + "modified": "2026-01-10 11:54:14.176810", "modified_by": "Administrator", "module": "Printing", "name": "Print Settings", @@ -204,4 +204,4 @@ "sort_order": "DESC", "states": [], "track_changes": 1 -} \ No newline at end of file +} diff --git a/frappe/printing/doctype/print_settings/print_settings.py b/frappe/printing/doctype/print_settings/print_settings.py index 8342c9b535..88cf4e2557 100644 --- a/frappe/printing/doctype/print_settings/print_settings.py +++ b/frappe/printing/doctype/print_settings/print_settings.py @@ -24,7 +24,7 @@ class PrintSettings(Document): enable_raw_printing: DF.Check font: DF.Literal["Default", "Helvetica Neue", "Arial", "Helvetica", "Inter", "Verdana", "Monospace"] font_size: DF.Float - pdf_generator_for_standard_format: DF.Literal["wkhtmltopdf", "chrome"] + pdf_generator: DF.Literal["wkhtmltopdf", "chrome"] pdf_page_height: DF.Float pdf_page_size: DF.Literal[ "A0", diff --git a/frappe/printing/page/print/print.js b/frappe/printing/page/print/print.js index c6c3978fa4..9808f65a84 100644 --- a/frappe/printing/page/print/print.js +++ b/frappe/printing/page/print/print.js @@ -712,7 +712,7 @@ frappe.ui.form.PrintView = class { } get_pdf_generator(pdf_generator) { if (!pdf_generator) { - pdf_generator = this.print_settings.pdf_generator_for_standard_format || "wkhtmltopdf"; + pdf_generator = this.print_settings.pdf_generator || "wkhtmltopdf"; } return pdf_generator; }