【问题标题】:Large HTML documents to PDF将大型 HTML 文档转换为 PDF
【发布时间】:2011-02-27 10:22:21
【问题描述】:

我正在使用一个从 HTML 生成大型 PDF 文档的 asp.net 应用程序。与典型用法相比,内容可能很复杂(详细的网格类型列表、css 样式、运行到 40 多页)。我们尝试过的库都没有充分发挥作用。通常,在功能强大的多核机器上呈现 40 页的文档需要一分钟以上的时间。

我们能够将生成与 Web 应用程序分离,并且在某些情况下还可以预生成文档。尽管如此,内容更改的频率仍需要更快的解决方案。

那么,有没有人使用过 PDF 生成组件,它可以在几秒钟而不是几分钟内输出一个内容繁重的 40 页文档?还是我们的期望不切实际?

注意:我不想在这里“淘汰”性能不佳的组件,因为我们正在寻求供应商的支持以进行改进。我查看了之前在 StackOverflow 上发布的问题,但似乎没有一个问题涉及这种类型或大小的文档。

【问题讨论】:

  • 当您将 html(从浏览器)打印到 PDF 生成器(如 PDFCreator)时,看看您获得了什么样的性能会很有趣。顺便说一句,因为您不会提供有关您的供应商的任何信息,所以您很难提供答案,而且这个帖子对于可能处于类似位置的其他人来说用处不大。
  • 明天列表中的一项任务是按照您的建议进行操作,并通过桌面工具获取一些打印为 PDF 的指标。关于讨论供应商,在我们确定 x 在我们的特定场景中表现优于 y 之前,我不愿意这样做。如果事实上所有供应商都同样无能,那么建议特定供应商在我们的场景中表现不佳是不公平的。我不排除(如我最初的问题中所述)我们的期望实际上是不切实际的。我当然会用我们找到的任何有用的结果更新问题或添加答案。

标签: asp.net html pdf-generation


【解决方案1】:

一个选项可能是不将 html 转换为 PDF 并采取另一种方法。我们使用生成 PDF 的 ActiveReports 报表工具,它在使用多数据集报表的子报表时非常强大,并且与 Visual Studio 完全集成。

这意味着您需要重新生成报告以生成您在屏幕上看到的相同数据。这有时并不是一件坏事,因为您可以专门为打印设置报表样式。

PDF 可以通过后端服务生成和/或通过电子邮件发送或即时生成到浏览器。

【讨论】:

  • 我相信还有其他报告工具,值得一试,甚至 SQL Server 报告服务也可能会有所帮助,因为它也可以输出 PDF。
  • 感谢您的建议。您是否尝试过任何一种输出我们需要的大小的选项,即样式化、文本重、40 多页的嵌套表格/网格?
  • 结合报表工具是为表格数据构建的,子报表只是报表中的报表。给定一个数据源或 2、40 多个页面根本不是问题,就像任何数据检索一样,需要优化。分组、页码、页面大小、报告/组/页/页眉/页脚等规则可用。您可以使用样式在报表上添加图像和各种其他组件。它肯定比 html 到 PDF 的转换更好。
  • 我们已经对流程进行了概要分析,并将最终转换作为唯一“无法解决”的问题进行了隔离。我引用的数字是对 PDF 组件的最终调用,不包括数据检索和 HTML 生成。 +1 的建议和提及子报告...让我意识到在某些情况下,较大的 PDF 是较小 PDF 的组合。这使我们可以选择预先生成子报告并合并 PDF 以创建更大的复合文档。
  • 是的,生成单独的报告和合并也是构建复杂报告的好方法(报告工具不存在没有自己的弱点),并且有许多库和工具可以进行合并等。库如itextSharp 非常适合我所说的单页合成,即将文本和图像行放到新的或现有的 PDF 页面上,而不适用于表格数据或跨多个页面运行的数据。
猜你喜欢
  • 1970-01-01
  • 2021-09-11
  • 2012-05-20
  • 2019-11-12
  • 2014-07-25
  • 1970-01-01
  • 2018-01-07
  • 2017-01-13
  • 1970-01-01
相关资源
最近更新 更多