2009-12-08 176 views
1

目前,我们使用MS WORD和MS EXCEL来发送需要发送给多个收件人的合并文档。如何以编程方式生成申请表格/文件?

例如,有一个投诉表格,投诉人需要填写他/她的姓名,地址等。因此,我们设置了一个.doc文件,其中包含为邮件合并设置的内容和动态实体,将姓名和地址详细信息放在excel文件中,我们可以从中愉快地邮件合并以生成全部或只是必要的表格/文件。

但是,我想将此过程自动化,就像投诉人填写其姓名,地址和其他详细信息的网站中的表单一样,我们可以使用它自动生成投诉表单并提供该表单被下载(最好是pdf)。

现在,唯一想到的解决方案是Latex,以便我可以替换所需的实体并将其编译为PDF。但是,如果他们提供Latex或不提供这一点,就必须与Webhost协商。

有没有其他解决方案?我们可以通过其他任何方式完成这项工作,对于大多数虚拟主机解决方案来说,这应该不成问题?

编辑:我宁愿一个非.NET或非微软的解决方案,因为服务器运行的是linux,而mono可能能够完成工作,我们的开发人员都不知道任何.NET语言。但是,如果需要的话,我们可能不得不忍受它。

+0

'该位必须与虚拟主机提供商”进行谈判 - 这有什么问题?您使用哪种托管服务? – 2009-12-08 11:10:21

+0

恐怕我无法将服务提供商命名为公司政策。但是,虽然他们应该能够提供乳胶,但我只是想确保它能够使用最好的东西。应该加上,虽然我在这些东西是相当新的:) – Sujoy 2009-12-09 05:52:56

回答

2

使用XSL生成PDF。请检查以下内容:Apoc XSL-FO

您将需要创建一个带有必需字段的XML文件并使用此工具对其进行转换。

+1

谢谢。虽然它看起来不错,但我更喜欢非.NET解决方案,因为我不知道任何.NET语言,但我会研究它,如果这是唯一的其他解决方案 – Sujoy 2009-12-08 06:53:49

+0

确定。这些可能会有所帮助:http://www.sagehill.net/docbookxsl/FOprocessors.html – A9S6 2009-12-08 07:01:40

+0

有许多(?)非.NET XSL处理器。 – 2009-12-08 15:07:02

1

如果你想避开.NET,那么XSL-FO值得一看。尝试FOray项目。 如果您还没有经验,XSLT可能是一个陡峭的学习。另外,用户无需要求XSLT专家就可以更改模板。

如果您的模板已经在MS Word和MS Excel中,那么我会坚持在服务器上生成MS文档。这是现在很容易从代码一起工作,因为OpenXML的 - 看看OfficeOpenXMLOpenXMLDeveloper

+0

对于使用docx和xlsx来模板有一些需要说的,所以最终用户可以维护它们。 然后,您可以使用docx4j或POI将数据合并到它们中。 docx4j可以生成PDF。 – JasonPlutext 2009-12-08 23:47:45

+0

我倾向于说,像标记的PDF一样,除非生成的文档有特殊要求,否则docx和xlsx对于这种应用程序来说是过度杀毒。 在linux服务器上实现时,它们也有点笨拙。我更喜欢在我的上面运行更简约的代码。 – 2009-12-10 06:34:02

1

我建议在服务器上生成RTF:它很容易使用CPAN的RTF::Writer,具有转换器产生良好的PDF格式,可以手动编辑自动生成在word中,oo-writer & TextEdit,在主编辑应用程序之间没有任何非常差的兼容性问题,并且具有体面的文本资源提取工具,其中文本提取比PDF更好。

虽然最好的rtf - > latex转换器docx2tex取决于System.IO.Packaging.net模块,但它的单声道实现还没有稳定性,但仍有一些支持在rtf &乳胶之间移动。

后记 —不建议:这太过分了这份工作一个笨拙的大锤,但iText将直接从表格数据生成PDF。如果你想做像签名pdf这样的花哨的东西,那就是要走的路。

后记#2 —如果分手的Word文档到使用Word的主控文档表示单独的文件,那么你就可以揍了手工生成的内容的组成部分之一。这使得使用标准的文件-utils和一些简单的rtf-> doc调整来完成一些近似表单填充的单词.doc文件变得很容易。

相关问题