3

我用了几天时间想出了一个生成 PDF 的最佳实践,最终用户可以为自己自定义布局。PDF 输出需要保存在服务器上或发送回 PHP 文件,以便 PHP 文件可以保存它,并且 PHP 文件需要知道一切正常。

我认为最好的方法是使用 XML、XSLT 和 Apache Cocoon。但我不确定这是否可能,或者这是一个好主意,因为我找不到任何类似的人的信息。这不可能是一个不常见的问题。

当我读到 Cocoon 通过 XSLT 将 XML 转换为 PDF 时,这个想法就产生了:

http://cocoon.apache.org/2.1/howto/howto-html-pdf-publishing.html

并能够接受变量:

http://old.nabble.com/how-to-access-post-parameters-from-sitemap-td31478752.html

这就是我的想法:

  1. 用户调用 php 文件,该 php 文件生成具有特定名称的源 XML 文件
  2. 然后,php 文件向 Cocoon(在同一 Web 服务器上)发出请求,以在 XML 文件上应用用户定义的 XSLT。这里需要一个参数来知道要应用哪个 XSLT。
  3. 该请求由 PHP 文件处理,然后在服务器上保存为 PDF,以后可以邮寄出去。

这会起作用吗?有没有更好的方法来处理这个?

核心问题是用户需要能够自己自定义 PDF 的布局,而我需要服务器保存 PDF 并稍后发送。用户将使用它进行订单确认、发票等。我不想为每个用户硬编码布局。

4

2 回答 2

0

我使用 webkithtml2pdf 来生成我的 PDF:s。只需像往常一样使用 HTML 和 CSS 创建一个用于打印的文档,然后通过转换器运行它。

它非常适合生成发票等内容。您可以将 SVG 用于徽标和插图,它们在打印时看起来很棒,因为它们是基于矢量的。即使是带有虚线轮廓的圆角也可以完美地工作。

一个小问题是输入的 html 必须有 th htm 或 html 文件名后缀,因此您不能使用默认的 tempfile 函数。

于 2012-06-03T12:02:12.620 回答
0

过去通过设置JasperReports Server并使用iReport Designer创建报告,我取得了一些不错的成绩。它们都在 F/OSS(“社区”)版本中可用,但如果您需要这些东西,您可以支付支持和增值费用。

这对我们来说是一个很好的解决方案,因为我们可以通过 Java 系统的 Java API 和 PHP 系统的 SOAP 访问它。GUI 设计器也使非技术业务人员非常容易调整报告。

于 2012-06-03T14:31:33.827 回答