我一直负责创建一个数据驱动的pdf报告.在审查了过多的选项后,我将其缩小到2.我需要你们所有人来帮助我做出决定,或者提供我没有考虑过的替代方案.以下是要求:
> 100%数据驱动
>最终PDF(HTML中的停止是好的,只要它被转换)
>可以使用多组数据运行(布局始终相同,数据可变)
>包含正常的分析样式副本(使用html标记保存在DB中)
>包含表格(表格数据在运行时生成)
>每页上的页眉/页面#
>目录
> .NET(VB或C#)
>快点完成
现在,由于报告将使用多组数据生成,我认为加盖的pdf模板不会起作用,因为我不知道报告的某一部分可以使用多长时间或多少页要求.
所以,我认为我最好的选择是:
>使用类似iText的解决方案进行编程创建.
>使用第三方应用程序生成HTML并转换为PDF(ABCPdf是我目前使用的工具)
程序化解决方案:
优点:
缺点:
>耗费时间(在iText上面写一层以完成我需要的操作并保持可维护性)
>由于副本已经存储在带有html标记的数据库中,因此我必须在将数据放入pdf之前解析数据,确保我不必将段落分成块,这样我就可以应用粗体,斜体,对特定短语加下划线等.这看起来像一个巨大的PITA,我希望我对这个假设是错误的.
HTML – > PDF
优点:
>易于从db生成(无需解析)
>许多转换工具
>使用我已经熟悉的技术
>内置“打印预览” – 不是要求,但很好
缺点:
(在项目完成后编辑.我的所有假设都不正确,ABCpdf很棒)
1.几乎不可能生成页眉 – 不是真的
2.很难生成页码不正确
3.几乎不可能生成目录Not True
4.(跨浏览器支持不是con;由于它的内部,我可以决定使用什么浏览器)
5.转换工具怪癖 – 可能无法完全转换为浏览器中呈现的Not True
6.总的来说,我认为完全按照我希望它出现/转换为PDF来格式化HTML是非常困难的.不对
就是这样 – 我需要社区帮助决定我应该走哪条路.对于我的一些Pro / Con假设,我可能错了.如果是的话,请告诉我.欢迎并赞赏所有的想法和建议.
谢谢
解决方法
http://alistapart.com/articles/boom
使用ABCPdf而不是Prince作为最终的HTML – > PDF生成.
任何对同一件事感兴趣的人都可以随时向我发消息.