首页 > 解决方案 > 在 Python 中批量打印自定义的 HTML 页面

问题描述

让我提供一点背景。我自愿参加的一个组织为假期无法来取餐的人送餐。他们目前有一个 SQL Server 数据库,用于存储所有客户的信息以及每年的膳食信息。当前,Java 桌面应用程序连接到 SQL Server DB 并允许执行多个功能。

即添加客户、添加餐点、删除客户、打印交货单。

我希望使用 python Flask 将应用程序重写为基于 Web 的应用程序。我目前感兴趣的一个功能是打印交付表功能。

这样做的方式是有一个当前年份的设置。当您单击年度打印交付按钮时,它将为每个客户批量打印一份文档到 8.5" x 11.5" 纸上。该表将一分为二,每一面都有相同的确切信息。该信息包括客户姓名、地址、用餐次数等。

我想知道的是如何/什么是设置此模板的最佳方法,以便我可以使用 python 批量打印它。我正在考虑为页面创建一个 html 模板,但我不确定它是如何工作的。

同样,我需要将那一年内的每个客户传递到模板中并批量打印到 8.5 英寸 x 11.5 英寸的纸张。

我要问的是......

我怎样才能为打印创建一个模板,我可以通过每个客户两个。我将如何为每个客户批量打印该模板。

如果可能的话,我希望在 python 中完成这一切。感谢您的时间和帮助。

标签: pythonpython-3.xflaskprintingbatch-processing

解决方案


如果您已经将其部署为 Web 应用程序,那么设计和生成 pdf 可能会更容易。您可以使用 html 到 pdf 转换器,PyPI 上有几个,或者网上有很多资源,例如:

一旦您找到了生成 PDF 的方法,您就可以像使用任何其他 PDF 一样使用它们,并让用户下载它们或从浏览器打印它们(这可能需要一点 Javascript,但这不应该是这很难,因为它应该只是一个window.open电话。

例如,您可以添加一个按钮

<button onclick="getPDF()">Download PDF</button>

然后它将调用一个getPDF()您定义的函数,该函数会找到一种生成pdf的方法。

function getPDF() {
  // Find the uri for the pdf by some method
  var urlToPdf = getUrlToPdf();

  // Open PDF in new window
  window.open(urlToPdf, "_blank");
}

注意由于您使用的是 Flask,因此您可以在页面的源代码中包含 pdf 的 URL,甚至是使用{{ }}语法的 Javascript。然后只有当有人请求该路由时才会生成 pdf。

这样您就不必担心自己连接到打印机,只需使用浏览器来处理这些类型的任务。


推荐阅读