从网站打印多个自定义用户文档

时间:2011-04-24 04:34:19

标签: django printing-web-page

我有一个由在Linux服务器上运行的Django构建的数据库驱动的网站。它管理着许多独立的组,每组有数百个用户。它需要能够根据需要为一个,一些或所有用户打印自定义文档(即访问凭证)。每个组都有自己的徽标,每个凭证都根据用户的姓名,照片和一些额外的图形标记进行定制。所有自定义信息都基于用户的存储数据。

我正在尝试确定格式化凭据和打印的最佳方法。以下是我到目前为止提出的选项:

  • 直接HTML格式化,使用表格标签将凭据分解为单元格以包含自定义文本或图形。这似乎很简单,除了它似乎不能同时打印几百个凭证。

  • 从PDF文件形式的doc模板开始,使用可用的PDF命令行工具包标记自定义信息,并将多个PDF附加到单个文件中进行打印。这似乎也是合理的,除了这些工具包的服务器许可证的成本对于Linux来说是非常昂贵的(> 500美元)。

  • 在客户端上运行的独立程序,它通过Web服务检索用户数据,并在本地执行所有格式化和打印。

还有其他选择吗?有什么建议?谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我曾经使用SVG做过类似的事情。这允许很大的灵活性,因为您可以在inkscape中设计“凭证”,使用占位符名称和徽标,然后完成后,在文本编辑器中打开输出svg并用上下文变量替换占位符。

一个提示,将所有django模板代码(如果有的话)作为xml注释,ex <!--{% load xyz_tags %}-->,否则,如果你在inkscape中打开它,很多东西就搞砸了。

答案 1 :(得分:0)

解决方案是使用开源ReportLab库从头开始构建PDF页面。

我找不到将自定义组件标记为现有PDF的廉价方法。 ReportLab可以做到这一点,但只能通过他们的商业产品。

虽然效果很好。