PDF报告生成

Ini*_*ech 8 html css pdf-generation itext abcpdf

编辑:我使用ABCpdf完成了这个项目.对于任何有兴趣的人,我喜欢这个产品,他们的支持是A +.我在ABC - > PDF解决方案中列为"Con"的所有内容在ABCpdf中都很容易实现.


我一直负责创建一个数据驱动的pdf报告.在审查了大量选项之后,我将其缩小到2.我需要你们所有人来帮助我做出决定,或者提供我没有考虑过的替代方案.以下是要求:

  1. 100%数据驱动
  2. 最终PDF(HTML中的停止是好的,只要它被转换)
  3. 可以使用多组数据运行(布局总是相同,数据是可变的)
  4. 包含正常的分析样式副本(使用html标记保存在DB中)
  5. 包含表(在运行时生成表的数据)
  6. 每页上的页眉/页面#
  7. 目录
  8. .NET(VB或C#)
  9. 很快完成

现在,由于报告将使用多组数据生成,我认为加盖的pdf模板不会起作用,因为我不知道报告的某一部分可以使用多长时间或多少页要求.

所以,我认为我最好的选择是:

  1. 使用类似iText的解决方案进行编程创建.
  2. 使用第三方应用程序生成HTML并转换为PDF(ABCPdf是我目前使用的工具)

两种解决方案都有自己的专业和解决方案.

程序化解决方案:

优点:

  1. 灵活
  2. 简单的页面编号/页面标题/目录
  3. 自由

缺点:

  1. 耗时(在iText上面写一层以做我需要的并保持可维护的)
  2. 由于副本已经存储在带有html标记的数据库中,因此我必须在将数据放入pdf之前解析数据,确保我不必将段落分成块,这样我就可以应用粗体,斜体,下划线等等到特定的短语.这看起来像一个庞大的PITA,我希望我对这个假设是错误的.

HTML - > PDF

优点:

  1. 易于从db生成(无需解析)
  2. 许多转换工具
  3. 使用我已经熟悉的技术
  4. 内置"打印预览" - 不是一个请求,但很好

缺点:

(在项目完成后编辑.我的所有假设都不正确,ABCpdf很棒)

1.几乎不可能生成页眉 - 不正确
2.很难生成页码 不正确
3.几乎不可能生成目录 不正确
4.(跨浏览器支持不是骗局;由于其内部,我可以决定使用什么浏览器)
5.转换工具怪癖 - 可能无法完全转换为在浏览器中呈现 Not True
6.总的来说,我认为格式化HTML将非常困难,因为我希望它出现/转换为PDF . 不对

就是这样 - 我需要社区帮助决定我应该走哪条路.对于我的一些Pro/Con假设,我可能错了.如果是的话,请告诉我.欢迎并赞赏所有的想法和建议.

谢谢

Ini*_*ech 3

决定使用类似于http://alistapart.com/articles/boom中使用的方法

使用 ABCPdf 而不是 Prince 来生成最终的 HTML -> PDF。

任何对同一件事感兴趣的人,请随时给我留言了解这种方法。