【问题标题】:Easiest way to create dynamic-content documents (like invoices, delivery notes)创建动态内容文档(如发票、交货单)的最简单方法
【发布时间】:2011-07-07 09:10:57
【问题描述】:

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

据我所知,我可以选择:

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

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

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

  4. 乳胶?

你有什么解决方案?

【问题讨论】:

    标签: c# pdf latex document


    【解决方案1】:

    感谢您的所有回答...

    我最终决定使用 Visual Studio 2010 和 Office-Tools 实现我自己的解决方案...这不是“完美”的解决方案,但它实现起来既简单又快速,同时我仍然可以灵活地更改文档女巫 excel 或 word...

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

    【讨论】:

      【解决方案2】:

      似乎没有人提到基于乳胶的解决方案,有一个stack overflow Tex question 由jason 回答。短版:使用 MikTex,漂亮的文档,使用构建/维护很麻烦。

      【讨论】:

        【解决方案3】:

        水晶报表可能会很痛苦!在基本层面上,我们内部软件的工作订单、发票等的外包开发人员使用 Dev Express,尽管我认为它可能很昂贵。

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

              【解决方案6】:

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

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

              Aspose.Words 能够进行邮件合并和编写 PDF 文件,因此我经常在我的台式计算机上使用我在 Word 中编辑的 DOC 开始,然后将它与我服务器上的 Aspose.Words 一起使用来生成 PDF。

              【讨论】:

                【解决方案7】:

                【讨论】:

                  【解决方案8】:

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

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

                  【讨论】:

                    【解决方案9】:

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

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

                    Crystal Reports 的一个不错的功能是有导出功能,可以导出为 PDF、Word 等。而且很容易自动打印到指定的打印机。

                    【讨论】:

                    • 我们遇到了水晶报表设计器不是所见即所得的问题。这可能非常令人沮丧。
                    • 我同意这可能会令人沮丧,例如,当在文档上移动视觉对象时,它们有时会比预期跳得更远,但这可以通过启用网格视图来改善,以便对象基于网格以小增量移动尺寸。但总体而言,它使创建发票等文档变得非常简单。
                    【解决方案10】:

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

                    【讨论】:

                      【解决方案11】:

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

                      【讨论】:

                      • -1 提交者说他找到的解决方案都不符合任务要求,并且他在您的答案中列出了单词,其他所有内容都是对问题中提到的内容的非特定改写。
                      • 他说“他在寻找可能性”,而我试图说“可能性列表将取决于您的要求”,而不是仅仅列出随机组件并希望它们是合适的。
                      猜你喜欢
                      • 1970-01-01
                      • 2017-07-09
                      • 2010-10-05
                      • 1970-01-01
                      • 2014-08-28
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多