PDF报告生成

时间:2009-12-30 15:57:26

标签: html css pdf-generation itext abcpdf

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

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

  1. 100%数据驱动
  2. 最终PDF(HTML格式中的句号很好,只要它被转换)
  3. 可以使用多组数据运行(布局始终相同,数据可变)
  4. 包含正常的分析样式副本(保存在带有html标记的DB中)
  5. 包含表格(表格数据在运行时生成)
  6. 每页上的页眉/页面号
  7. 目录
  8. .NET(VB或C#)
  9. 快速完成
  10. 现在,由于报告将使用多组数据生成,我认为标记的pdf模板不会起作用,因为我不知道某一页的长度或页数是多少报告可能要求。

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

    1. 使用类似iText的解决方案进行程序化创建。
    2. 使用第三方应用程序生成HTML并转换为PDF(ABCPdf是我目前使用的工具)
    3. 两种解决方案都有自己的专业和解决方案。

      程序化解决方案:

      优点:

      1. 弹性
      2. 简易页面编号/页面标题/目录
      3. 缺点:

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

          优点:

          1. 易于从db生成(无需解析)
          2. 许多转化工具
          3. 使用我熟悉的技术
          4. 内置“打印预览” - 不是要求,但很好
          5. 缺点:

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

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

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

            由于

5 个答案:

答案 0 :(得分:3)

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

使用ABCPdf而不是Prince作为最终的HTML - &gt; PDF生成。

任何对同一件事感兴趣的人都可以随时向我发消息。

答案 1 :(得分:2)

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

您可以创建与OLE数据库的数据库连接,该数据库将数据提供给表单字段。您可以选择要使用的表,将运行的任何存储过程,任何查询,然后数据将显示在设计器中的某个托盘上。

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

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

如果你愿意做一点.NET工作,那就是:

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

答案 2 :(得分:1)

根据您使用和定位的平台,您可能需要考虑报告解决方案。这些并不完美,但他们给你的一件事就是能够编写一次报告,然后用HTML,PDF甚至Excel渲染它。

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

我在MS环境中使用Reporting Services,在Java环境中使用Jasper Reports,两者都有良好的效果。我确信还有其他选择,但这些是我能够成功使用的。

答案 3 :(得分:0)

对于HTML→PDF步骤,我真的很喜欢Prince。看起来你可以call it from VB

答案 4 :(得分:0)

我的建议是使用SQL Reporting Services。

  • 可以设计每一页&amp;报告表
  • 包含页眉和页脚
  • 包含页码
  • 目录
  • 可以跨越多个页面
  • 支持图像&amp;图表
  • 可以在不需要任何第三方PDF转换器
  • 的情况下呈现为PDF
相关问题