8

编辑:我使用 ABCpdf 完成了这个项目。对于任何感兴趣的人,我喜欢这个产品,他们的支持是 A+。我列为 HTML -> PDF 解决方案的“骗局”的所有内容都可以在 ABCpdf 中轻松实现。


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

  1. 100% 数据驱动
  2. 最终 PDF (在 HTML 中停止是可以的,只要它被转换)
  3. 可运行多组数据(布局始终相同,数据可变)
  4. 包含普通分析风格的副本(使用 html 标记保存在数据库中)
  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. 转换工具的怪癖 - 可能无法完全按照浏览器中呈现的方式进行转换 不正确
6. 总的来说,我认为很难完全按照我希望它出现/转换为 PDF 的方式格式化 HTML . 不对

就是这样——我需要社区的帮助来决定我应该走哪条路。我的一些赞成/反对假设可能是错误的。如果我是,请告诉我。欢迎和赞赏所有想法和建议。

谢谢

4

5 回答 5

3

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

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

任何对相同事物感兴趣的人,请随时向我发送有关此方法的信息。

于 2010-01-04T03:59:06.770 回答
2

我认为如果你有完整版的 Adob​​e Acrobat Pro,它会附带 Adob​​e Live Cycle。您应该能够从中生成从数据库生成的报告。它将为您提供格式化所需的一切,因为您将从头开始创建报告。

您可以创建一个到 OLE 数据库的数据库连接,该数据库将向您的表单字段提供数据。您选择要使用的表、将运行的任何存储过程、任何查询,然后数据将出现在设计器中的一个调色板上。

您还可以使用 Web 服务 (WDSL) 接收和处理命令并将结果返回到表单。

无论哪种方式,您都可以将字段绑定到数据源,然后数据将显示在表单中。

如果您愿意做一些 .NET 工作,那就是:

http://www.dotnetvj.com/2009/05/populating-pdf-from-aspnet-using.html

于 2009-12-30T16:24:16.617 回答
1

根据您使用和定位的平台,您可能需要考虑报告解决方案。这些并不完美,但它们确实为您提供的一件事是能够编写一次报告,然后将其呈现为 HTML、PDF 甚至 Excel。

通常他们还提供一个编辑器来帮助您设计报告并使其看起来恰到好处。它们提供分页、页眉、页脚、图表等内容。它们还提供了一个 API,您可以使用该 API 以编程方式创建和运行报告。

我在 MS 环境中使用了Reporting Services ,在 Java 环境中使用了Jasper Reports,两者都取得了不错的效果。我确定还有其他选项,但这些是我能够成功使用的选项。

于 2009-12-30T16:09:10.873 回答
0

对于 HTML→PDF 步骤,我真的很喜欢Prince。看起来你可以从 VB 调用它

于 2009-12-31T12:00:22.687 回答
0

我的建议是使用 SQL Reporting Services。

  • 可以设计报告的每一页和表格
  • 包括页眉和页脚
  • 包括页码
  • 目录
  • 可以跨越多个页面
  • 支持图像和图表
  • 无需任何第三方 PDF 转换器即可呈现为 PDF
于 2012-07-06T19:22:53.577 回答