创建动态内容文档的最简单方法(如发票,交货单)

时间:2011-03-02 15:30:29

标签: c# pdf latex document

我在网上搜索了一些结果,但它们似乎都不适合这项任务。我正在寻找.NET的可能性,但也想了解Java / PHP /等。开发人员完成了这样的任务。

据我所知,我可以选择:

  1. 使用MigraDoc / PDFSharp并采用“代码”方式,无需任何视觉设计师

  2. 我可以使用HTML并将其转换为PDF(理论上这是最好的方法,但实际上将HTML 1:1打造成PDF文件非常糟糕)

  3. 我可以使用一些奇怪的MS Word模板/批处理

  4. 乳胶

  5. 你有什么解决方案?

11 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我们在之前的项目中确定的解决方案是XSL-FO。虽然它没有可视化设计器,但我们发现它非常适合开发人员,更适合在服务器类型的环境中运行。它还比提供设计师的大多数报告软件更好地处理文档“流程”。我知道我们在部署时遇到了很多关于Crystal Reports的问题,抛出了COM异常以及可以同时生成多少报告的限制。使用XSL-FO的一个缺点是XML带来的所有语法糖。

This question列出了一些XSL-FO引擎。

答案 2 :(得分:1)

关于你的“3.)奇怪的MS Word模板/批处理”:

我喜欢使用Aspose.Words,一个商业软件包来创建/编辑/导出Microsoft Office Word文档,没有正在安装任何Office组件。

Aspose.Words能够执行邮件合并和写入PDF文件,因此我经常在台式计算机上启动我在Word中编辑的DOC,并在我的服务器上使用Aspose.Words来生成PDF。

答案 3 :(得分:1)

我以前用于Windows桌面应用程序的一种方法是使用XAML / WPF。这个解决方案的好处在于,有很多关于使用XAML构建布局的好工具和文档。然后你只需将画布传递给PrintDialog就可以了。如果你已经使用WPF / XAML做了很多,这是一个非常简单的解决方案,我已经取得了很大的成功。我从这里开始学习了大部分内容:http://www.switchonthecode.com/tutorials/printing-in-wpf

当然,缺点是你对.NET和WPF的依赖。

答案 4 :(得分:1)

与使用Crystal Reports的Matt Fs解决方案类似,我使用SQL Server Reporting Services。您可以创建向解决方案添加rdlc文件,并使用WYSIWYG编辑器设计报表。然后在您的代码中,您只需要在代码中将数据源分配给报表,它应该可以正常工作。这甚至支持导出为PDF。

答案 5 :(得分:1)

似乎没有人提到基于Latex的解决方案,stack overflow Tex question回答了jason。简短版本:使用MikTex,漂亮的文档,使用构建/维护的大麻烦。

答案 6 :(得分:1)

感谢您的所有答案......

我最终决定使用Visual Studio 2010和Office-Tools实现我自己的解决方案......这不是“完美”的解决方案,但它很容易&快速实施,而我仍然可以灵活地改变文件的优点或文字......

当然还有缺点:您需要安装Office。

答案 7 :(得分:0)

这取决于您获取模板文档的方式。例如,如果您的组织中有其他人负责生成“标准”发票文档,您可能会有一个涉及Microsoft Word API中邮件合并的解决方案,因为您需要使用Word格式的输入文件。或者,如果您只是给出了文档外观的规格(“右上角的徽标,5英寸以下,然后是水平线,距离下方两英寸,那么......等等”)你可以完全做到这一点在代码中。即使您从头开始设计解决方案,也要考虑您的文档供应商是谁,并做出相应的计划。最后,如果这对于一小组文档来说从头开始,这些文档不会发生太大变化(即,您正在创建自己的软件公司并希望发送发票),请不要这样做。只需购买现成的东西或使用Word:)

答案 8 :(得分:0)

我们使用xaml FixedPage,可以使用像Kazaml这样的设计器,它具有很多布局灵活性,数据绑定对于像expando这样的动态对象非常有用。在代码中我们绑定一个datacontext,然后将其呈现给XPS,因为我们需要最终输出为pdf,我们使用GhostXPS这是免费但必须在单独的进程中执行,有第三方完全托管的转换器xps到pdf虽然。

答案 9 :(得分:0)

我们使用随Visual Studio免费提供的Crystal Reports。您可以轻松创建绑定到数据库或未绑定的报告/文档。

例如,您可以抑制页眉和页脚,将详细信息部分展开为大约。 A4大小,然后添加绑定字段或使用未绑定内容的参数。然后在运行时绑定文档将选择公式设置为仅为一个事务提取数据,或者对于未绑定的文档,只需传入参数。

Crystal Reports的一个不错的功能是有导出功能,因此可以导出为PDF,Word等。此外,它可以轻松自动打印到指定的打印机。

答案 10 :(得分:0)

水晶报道可能很痛苦!在基础层面上,我们使用Dev Express的内部软件的外包开发人员使用Dev Express,尽管我认为它可能很昂贵。

对于由软件生成的报告,我最终选择将导出导入到原始CSV中,当然可以通过任何电子表格软件打开