2008-09-06 52 views
6

当您从Google Docs进行打印时(使用“打印”链接,而不是文件/打印),最终打印出格式正确的PDF文件,而不是依赖浏览器的打印引擎。 Google Analytics中的部分报告也是如此。 。 。 PDF格式的打印报告很漂亮。他们如何做到这一点?我无法想象他们会使用Adobe Acrobat之类的软件来实现它,但也许他们会这么做。我已经看到一些昂贵的HTML到PDF转换器不时在线,但从来没有厌倦它。有什么想法吗?Google如何使Google Analytics中的这些可怕的PDF报告以及您打印Google Doc等文件时如何?

回答

13

如果您正在专门查看Google如何执行此操作。如果你看PDF Properties页面,他们使用王子6.0(见princexml.com

有很多其他的PDF生成器。 对于棘手的工作我取得了巨大的成功。

alt text

-3

渲染PDF是艰苦的,复杂的问题。但是生成它们不是。简单地组成一些实体并生成。它与为网页生成HTML与显示(呈现)网页相同的问题域。

-1

嗯,我怀疑它和生成HTML一样容易。 。 。我的意思是,首先,PDF不是一种人类可读的格式,它不是纯文本(如SVG)。实际上,我会将SVG文件与PDF文件进行比较,因为您可以精确控制打印页面上的布局。但SVG不同之处在于它是XML(也因为它在浏览器中完全不受支持......还在研究SVG)。想想看,SVG应该可能成为我的下一个问题。

我知道谷歌没有使用.NET,我怀疑他们使用Java,所以必须有一些其他库用于生成PDF文件。更重要的是,他们如何创建PDF而不必将所有内容都重写为PDF而不是HTML?我的意思是,当他们生成HTML视图而不是PDF视图时,必须有一些共享代码。想想看,也许PDF视图和HTML视图是完全分离的,它们只有两个视图,因此MVC开发风格似乎是要走的路。

1

我已经成功与pd4ml。它有一个标签库,这样你就可以通过

<pd4ml:transform> 
<!-- Your HTML is here --> 

<c:import url="/page.html" /> 
</pd4ml:transform> 
3

大自由选择将任何现有的HTML转换成PDF,以PrinceXML:wkhtmltopdf。有各种各样的语言包装库很多 - 但我只使用Ruby的。但是它的产品与PrinceXML恕我直言相同。

相关问题