最简单的创建动态内容文档(如发票、送货单)的方法是什么?

13

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

据我所了解,我有以下选择:

  1. 使用MigraDoc/PDFSharp并走“代码”路线,没有任何可视化设计器

  2. 我可以使用HTML并将其转换为PDF(这在理论上是最好的方法,但实际上很难将好看的HTML 1:1转换为PDF文件)

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

  4. LaTeX?

你有什么解决方案吗?

11个回答

2

1

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

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


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

1

似乎没有人提到基于Latex的解决方案,有一个stack overflow Tex questionjason回答。简而言之:使用MikTex,可以制作漂亮的文档,但构建/维护过程非常麻烦。


1

感谢您所有的回答...

最终我决定使用Visual Studio 2010和Office-Tools实现自己的解决方案...这不是“完美”的解决方案,但它很容易且快速实现,同时我仍然有灵活性可以更改Excel或Word文档...

当然,缺点是需要安装Office。


1
我们在之前的一个项目中采用的解决方案是XSL-FO。虽然它没有可视化设计工具,但我们发现它非常适合开发人员,并且更适合在服务器类型环境中运行。它还能更好地处理文档“流动”,比大多数提供设计工具的报告软件更加优秀。我知道我们在部署Crystal Reports时遇到了很多问题,如COM异常抛出和同时生成的报告数量限制等。使用XSL-FO的一个缺点是所有与XML相关的语法糖。 这个问题列出了一些XSL-FO引擎。

1
关于您提到的“3.) 奇怪的 MS Word 模板/批处理问题”:
我喜欢使用 Aspose.Words,一个商业软件包,用于创建/编辑/导出微软 Office Word 文档,而不需要安装任何 Office 组件。
Aspose.Words 能够执行邮件合并操作和编写 PDF 文件,因此我经常从桌面计算机开始编辑 Word 中的 DOC 文件,并在服务器上使用 Aspose.Words 生成 PDF。

0

Crystal Reports 可能会让人感到头疼!在基本层面上,我们的内部软件(如工单、发票等)的外包开发人员使用 Dev Express,尽管我认为它可能有点昂贵。

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


0

这取决于您如何获取模板文档。例如,如果您的组织中有其他人负责生成“标准”发票文档,则可能需要使用Microsoft Word API中的邮件合并解决方案,因为您需要使用Word格式的输入文件。或者,如果您仅获得文档外观规格(“右上角有徽标,向下5英寸,然后是水平线,距离该线2英寸,然后...等等”),则可以完全使用代码完成。即使您从头开始设计解决方案,也要考虑您的文档供应商将是谁,并相应地进行计划。最后,如果这是针对一小组文档的从头开始设计,而且不会经常更改(例如,您正在开办自己的软件公司并希望发送发票),那么最好不要这样做。只需购买现成的产品或使用Word :)


提交者表示他找到的所有解决方案都不能满足任务要求,并且他列出了关键词,你在回答中提到的其他内容都是对问题中提到的非具体重述。 - jbtule
他说“他正在寻找可能性”,我想说的是,“可能性列表将取决于您的要求”,而不是随机列出组件并希望它们合适。 - GWLlosa

0

我们使用xaml FixedPage,可以使用像Kazaml这样的设计工具,它具有很多布局灵活性,并且数据绑定与动态对象(如expando)非常配合。在代码中,我们绑定数据上下文,然后将其呈现为XPS,由于我们需要最终输出为PDF,因此我们使用GhostXPS,它是免费的,但必须在单独的进程中执行,不过也有第三方完全托管的xps到pdf转换器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接