HTML + CSS现在与生成打印报告有多成熟?

时间:2011-12-21 18:05:38

标签: php javascript html html5 printing

我正在考虑将一系列桌面商业应用的所有报告直接创建为html。大多数报告都是表格(可能是复合报告),页眉,页脚等(没有图像,矢量图形等)。

在SO中搜索之后,我已经阅读了很多关于分页和类似问题的帖子(我根本不需要像素定位,但是在分页符时是控件)。

例如,假设我有一个带有货币值的大表,我需要每页表格的最后一行显示当时的运行总计..​​.这是可行的,或者我会遇到了很多麻烦?

哪些技术可以帮助我?

  • HTML5
  • 的Javascript
  • CSS
  • PHP图书馆
  • JQuery的

一些注意事项:

  • html将显示嵌入的chrome或firefox引擎,因此浏览器之间的差异对我来说不是问题。
  • 我可以嵌入php预处理器,如果这有助于更容易地生成报告,我只是在寻找手头上最好的技术来使工作顺利..
  • 我厌倦了“WYSIWYG”设计师的报告生成器(Crystal Report,FastReport,ReportBuilder等)。

谢谢!

3 个答案:

答案 0 :(得分:8)

我们做了你差不多一年前想到的确切行动并没有回头。与客户的大多数沟通都是通过网络进行的,因此它非常适合。他们可以在我们的网站上轻松查看html输出,并在必要时生成页面(服务器端)的pdf。我们用于pdf转换的程序是一个名为wkhtmltopdf的免费,易于使用的开源项目。

我们在哪里很棒,但到这里很困难。

决定使用哪个pdf引擎是一个漫长而痛苦的过程。缺点是HTML用于在互联网上查看页面,而不是用于在纸上查看页面。分页符号将成为您在此游戏中存在的祸根 - 您必须衡量每个页面并为每个报告创建自己干净的休息时间(否则,所有html-to-pdf转换器都将在那里只是继续将文档渲染到下一页,如果没有完全没有分页的话。)更复杂的是,每个html-to-pdf引擎都会以不同的方式处理这个问题。必须编写量身定制的解决方案来测试每个解决方案,看它是否满足您的个性化需求。

现在,好消息:

通过听取我的建议并使用wkhtmltopdf来完成最终报告输出,您可以省去很多麻烦。这个小程序简直太棒了 - 它使用webkit引擎,准确呈现CSS / javascript,具有页眉/页脚控件,可选地创建目录页面,并且(最重要的是)始终如一地生成出色的外观pdf而无需定制你的代码库。它还有各种很棒的命令行开关,它非常非常快。我再说一遍:非常非常快。

最重要的是,它是一个可以在批处理中使用的命令行工具。我是否提到它确实非常非常快?

答案 1 :(得分:6)

浏览器对打印的支持通常很糟糕。但是,还有其他工具,特别是Prince(不是免费的)和Flying Saucer 免费),可以从XML / HTML和CSS生成PDF输出。 Prince甚至支持JavaScript,虽然我对它没有任何经验。

我目前的应用程序中有一个Java后端,所以对我来说,Flying Saucer适用于简单的报告。我使用FreeMarker预处理HTML模板,然后通过Flying Saucer运行结果。它有一个令人惊讶的智能渲染引擎。

CSS3 Paged Media规范(好的,提议的规范)中有各种很酷的东西,但它们在浏览器中几乎完全没有实现。即使是CSS2分页媒体也只能半心半意地支持。

答案 2 :(得分:0)

说起Prince,你可能会看看DocRaptor。 DocRaptor是另一个HTML to PDF conversion应用程序。它使用Prince XML,并且比同类程序更好地处理CSS。

它不是免费的,但为所有帐户提供30天免费试用,所以尝试它至关重要。

DocRaptor