Introducing Print Designer : A brand new way of designing print formats 🖨️

There is some issue with your bench setup try this. create a new bench if problem still persists.

is custom html field not supported in this designer? @maharshivpatel

@519_Hamza_Habeeb I have excluded HTML field for now due to uncertainty it brings but will add soon. can you share your use case that also helps me design better support for HTML field.

wanted to create a new print formt for sales invoice and a lot of the data isnt available in the form, so i wanted to fetch them using html

Can I use the Print Designer on a v15 and then migrate/copy the designs to my v14 instance?


The designer is good, but pulling Google in multiple languages is a big mistake. It cannot be used in places with closed networks. I hope the plugin calls the server’s font library

@Wei_Allen I am aware of this but wkhtmltopdf doesn’t work with self-hosted fonts for some reason.

It is on my list to eventually replace with local fonts.

feel free to try incorporating local fonts.

i would be more than happy to help in anyway possible.

1 Like

At present, I am unable to connect to Google within China, and even within the company’s intranet, I am unable to connect to the Internet, so this solution cannot be seen or used.
目前我在中国境内 无法连接到谷歌 还有就是公司内网的也无法连接到英特网 所以这个无解 能看不能用。

希望下一版本 所有打印界面 提供EXCEL打印导出 现实中提取数据很实用
I hope that the next version of all printing interfaces will provide Excel printing and export. It is very practical to extract data in reality

Frappe Framework already have a way to export to excel. Print Designer is for designing print/pdf.
If there is any reason for it to be part of print designer please let me know. Thank you.

1 Like

I have added option to see hidden fields as well. Please check if now you can access all fields.


@maharshivpatel I have tried multiple times to install Print Designer to a docker install using the pwd.yml file giving me the Not found error - Module Print Designer not found. I have installed and migrated both the front and back-end containers and stopped and started the containers again. any idea why it would not install the print designer correctly?

also any chance to create install instructions for the containerized version as ERPnext is pushing for that to be the defacto version from my understanding?

@maharshivpatel - the github installation instructions seem to suggest that the app is now compatible with production version of Frappe v15?If not, appreciate a sense on timing for compatibility with stable / production version of v15. Thanks.


Please note that print designer is only compatible with develop and V15 version of frappe framework.

@zerodiscount yes as warning says it is compatible with v15 and develop.

meaning it is not compatible with earlier versions like v14, v13 …

Thanks for the clarification. Tried installing this app and get the following error during bench build… I am on plain v15 (no customizations); node v20.xx (snap) . Got same error when I switched nodejs to v18.18 (using snap refresh to change channel). Appreciate guidance on how to resolve…

 ERROR  There were some problems during build

Error: Build failed with 407 errors:
../print_designer/print_designer/public/js/print_designer/composables/AttachKeyBindings.js:1:9: ERROR: No matching export in "../../node_modules/vue/dist/vue.runtime.esm.js" for import "onMounted"
../print_designer/print_designer/public/js/print_designer/composables/AttachKeyBindings.js:1:20: ERROR: No matching export in "../../node_modules/vue/dist/vue.runtime.esm.js" for import "onUnmounted"
../print_designer/print_designer/public/js/print_designer/composables/Draw.js:1:9: ERROR: No matching export in "../../node_modules/vue/dist/vue.runtime.esm.js" for import "reactive"
../print_designer/print_designer/public/js/print_designer/composables/Element.js:6:9: ERROR: No matching export in "../../node_modules/vue/dist/vue.runtime.esm.js" for import "watch"
../print_designer/print_designer/public/js/print_designer/composables/Element.js:6:16: ERROR: No matching export in "../../node_modules/vue/dist/vue.runtime.esm.js" for import "markRaw"
    at failureErrorWithLog (/home/frappe/frappe-bench/apps/frappe/node_modules/esbuild/lib/main.js:1624:15)
    at /home/frappe/frappe-bench/apps/frappe/node_modules/esbuild/lib/main.js:1266:28
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
error Command failed with exit code 143.
info Visit for documentation about this command.


Traceback (most recent call last):
  File "/usr/lib/python3.10/", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/", line 86, in _run_code
    exec(code, run_globals)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/", line 114, in <module>
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/", line 20, in main
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/", line 72, in build
  File "/home/frappe/frappe-bench/apps/frappe/frappe/", line 257, in bundle
    frappe.commands.popen(command, cwd=frappe_app_path, env=get_node_env(), raise_err=True)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/", line 97, in popen
    raise subprocess.CalledProcessError(return_, command)
subprocess.CalledProcessError: Command 'yarn run production --apps print_designer --run-build-command' returned non-zero exit status 143.
ERROR: bench build --app print_designer
subprocess.CalledProcessError: Command 'bench build --app print_designer' returned non-zero exit status 1.

@zerodiscount can you please create github issue here. It is most likely issue with your setup but we can continue there as it will be easier to track. Thank you.

@maharshivpatel - have opened issue here. FYI - did a bench update --reset on nodejs v18.18 and attempted to reinstall the app. Got same error. Some minor warnings along way - but error occurs during the bench build part of the bench get-app command.

I am on Ubuntu 22.04 and Frappe 15.10.0 - all bench commands etc work without issues. Have installed apps gameplan and also frappe-builder - without any issues - fyi.

@maharshivpatel ,

I have few questions as bellow

  1. Is there any way to remove table heading boarders? I was able to remove table data boarders not headers.

  1. When I add a new column it doesn’t allow me to change font settings, borders and paddings.

  2. How can I add page numbers in the footer?

Could you please guide me here?


i have te same issue but i am v15 production. is this compatible v15 production

Just wonder how I can add extra page in the print designer format, it seems print designer only allows adding information in one page. I am looking to add more information in the document as attachment such as appendix, which it will go on a new page, would page break be helpful?
Many thanks