2012-02-22 112 views
0

我正在努力使我们公司的发票系统实现自动化。目前所有数据都存储在我们的本地MySQL数据库中,并且有人手动更新Excel电子表格,然后将这些数据合并到MS Word模板中。目标是自动执行此过程,以便发票可以从我们的Intranet网站以PDF形式生成。如何创建格式良好的PDF?

我原来的计划是在HTML/CSS中创建一个模板,并使用wkhtmltopdf来生成PDF,但我遇到了在每个页面上获得可重复页眉和页脚的问题。 theadtfoot不受Webkit支持,修复建议in this other question似乎也不起作用。

所以我当时迷迷糊糊上使用XML和XSL-FO,后者我一无所知。这是最好的路径吗?是否有任何库或实用程序将使我的HTML + CSS转换为XML + XSL-FO变得更容易?有没有其他的选择我可以忽略?

编辑

目前的服务器是CentOS的Linux的MySQL数据库。目前所有其他代码都在PHP中,但随着整个系统的改进可能会改变。不过,Linux和MySQL几乎肯定会保持不变。

+1

在谷歌中放入“pdf creator library”,并开始评估适合您需求的选项。 – 2012-02-22 21:16:08

+0

您可以使用Zend框架PDF类。 http://framework.zend.com/manual/en/zend.pdf.html我曾用这个作为测试案例来制作我们公司的规格表。你基本上只是把东西放在一个网格系统上,我相信左上角是0,0。然后你可以规划出一个8.5x11的页面并设计你的发票,ZF类可以独立于整个系统使用,然后你需要一个PHP系统 – jmbertucci 2012-02-22 21:18:03

+0

像CutePDF一样,如果你想坚持使用这个词模板,或者如果你感觉有点像iText或iTextSharp一样勇敢 – 2012-02-22 21:19:36

回答

4

为了您的需求,XSL-FO可能只是做的伎俩。直接从数据生成PDF文件,然后去掉繁琐的html路径,除非需要显示html,那么您可能会考虑将html从pdf转换为pdf,但这样做总是很麻烦。

您可以从MySQL获得XML结果很容易(MySQL的--xml),然后你写的数据的一个(或几个)XSL-FO样式表。那么,您不仅可以生成pdf,还可以生成postscript文件或带有某些处理器的rtf。

XSL-FO有其局限性,但对于您的情况,它应该就足够了。

我承认,学习曲线比较陡,并保持XSLT的样式表可以得到非常累,但是当你开始更多地了解它,你最终写更少的代码。

另一种可能性是在例如java或c# - 发送select语句并循环结果,并使用类似iText的库迭代地构建pdf。

1

你可以尝试JODReportsDocmosis作为欠代码密集的选项。您提供Word或OpenOffice Writer文档作为模板,并使用这些引擎来操作/填充模板,然后以您需要的格式分发文档。这可能意味着您现有的Word模板可以直接使用,这会节省您一些努力/时间。

iText是另一个库,可以让你建立和代码泵出的PDF文件。这个很不错。

+0

这实际上是我在做了一些更多的研究后发现的。可能会使用红宝石[ODF-Report library](https://github.com/sandrods/odf-report)。不知道为什么我以前没有想到这一点:) – 2012-02-23 15:53:47

0

如果您可以使用.NET和C#,则可以使用DotPdf from Atalasoft(强制性声明:我为Atalasoft工作并编写了大多数DotPdf)。“生成”命名空间专门针对您要做的事情:自动生成报告。从最基本的角度来看,您可以直接使用该工具包创建文档,也可以创建具有未填充文本字段的模板文档,以便稍后重新加载并填写(例如,请参阅herehere)。

相关问题