python - 在 Python 中批量打印自定义的 HTML 页面
问题描述
让我提供一点背景。我自愿参加的一个组织为假期无法来取餐的人送餐。他们目前有一个 SQL Server 数据库,用于存储所有客户的信息以及每年的膳食信息。当前,Java 桌面应用程序连接到 SQL Server DB 并允许执行多个功能。
即添加客户、添加餐点、删除客户、打印交货单。
我希望使用 python Flask 将应用程序重写为基于 Web 的应用程序。我目前感兴趣的一个功能是打印交付表功能。
这样做的方式是有一个当前年份的设置。当您单击年度打印交付按钮时,它将为每个客户批量打印一份文档到 8.5" x 11.5" 纸上。该表将一分为二,每一面都有相同的确切信息。该信息包括客户姓名、地址、用餐次数等。
我想知道的是如何/什么是设置此模板的最佳方法,以便我可以使用 python 批量打印它。我正在考虑为页面创建一个 html 模板,但我不确定它是如何工作的。
同样,我需要将那一年内的每个客户传递到模板中并批量打印到 8.5 英寸 x 11.5 英寸的纸张。
我要问的是......
我怎样才能为打印创建一个模板,我可以通过每个客户两个。我将如何为每个客户批量打印该模板。
如果可能的话,我希望在 python 中完成这一切。感谢您的时间和帮助。
解决方案
如果您已经将其部署为 Web 应用程序,那么设计和生成 pdf 可能会更容易。您可以使用 html 到 pdf 转换器,PyPI 上有几个,或者网上有很多资源,例如:
- 如何使用 Python 将网页转换为 PDF
- https://www.smallsurething.com/how-to-generate-pdf-reports-with-jinja2-and-pyqt/
一旦您找到了生成 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。
这样您就不必担心自己连接到打印机,只需使用浏览器来处理这些类型的任务。
推荐阅读
- php - 在 docker compose 中打开 php.ini 添加扩展
- python - 用于单词数据的 CRNN 模型在 932 个训练图像上经过 10 个 epoch 后没有学习任何东西
- node.js - 带有return语句的nodejs异步函数
- android - 如何确保我的 android 应用使用矢量而不是 PNG?
- android - 为目标 API 级别 29 编译时,在 Android API 级别 < 24 上访问 NMEA?
- azure-cognitive-search - Azure 搜索复杂结构 sql 数据源
- vue.js - 以下运算符'!!'的VueJS含义
- html - 如何调整包括图像在内的 webview 内容的大小以适应水平边界
- css - 将动画 SVG 停止到屏幕上的某个位置
- node.js - 亚马逊 Alexa 的技能购买追加销售不起作用