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