我已经创建了rrdcgi脚本来显示有关系统性能的图表信息。现在我想为用户添加一个选项,以便随时使用当前页面(图像和信息)以及页眉和页脚的详细信息创建PDF。我还希望将生成的PDF文件保存在某个位置,以便下次可以轻松访问。这可能是与rrdcgi或任何Perl代码真的很感激。如何从rrdcgi创建PDF输出?
我需要此选项
我已经创建了rrdcgi脚本来显示有关系统性能的图表信息。现在我想为用户添加一个选项,以便随时使用当前页面(图像和信息)以及页眉和页脚的详细信息创建PDF。我还希望将生成的PDF文件保存在某个位置,以便下次可以轻松访问。这可能是与rrdcgi或任何Perl代码真的很感激。如何从rrdcgi创建PDF输出?
我需要此选项
你需要考虑你想在PDF中放置什么:你想要一个用户正在查看的网页的精确副本(太难以接近不可能没有用户的浏览器安装在你身边并使用它的打印输出),或者你想要大致相似的布局相同的信息?
一个重要的问题是您如何生成HTML:我曾为类似实验参与者生成PDF收据(现在,我只是output HTML with print styles)做了类似的事情。
该HTML使用HTML::Template生成,但Template.pm将一样好。
然后编写另一个模板,其中一个生成LATEX文档,可以使用pdflatex处理。如果在请求快照时保存数据,则可以将快照添加到可异步生成文档的队列中,以便请求不会绑定Web服务器。
更新:看看rrdcgi,我现在意识到它已经使用了一个模板。这是完美的:而不是把HTML模板,放LATEX代码模板和运行rrdcgi
与--filter
选项来创建A L 一个牛逼Ë X源,您可以通过pdflatex
运行文件。我猜想要解决的问题是能够使用用于生成用户正在查看的页面的完全相同的数据。
如果这是不可能重新运行rrdcgi
具有完全相同的数据,考虑添加一些JavaScript用于提交用户正在审查网页的HTML源(或它们的一些JSON表示),以该解析CGI脚本HTML和输出L 一个牛逼Ë X.写作的原始模板,并明智地使用class
和id
属性将有助于有干净的HTML。
我现在没有时间测试任何这些想法,但我会在接下来的几天再看一遍。
是否值得您付出努力?
为什么不添加常见问题解答,解释如何在Windows/MAC/Linux上设置PDF打印机并提供可以打印的“干净”页面?
既然你显然必须创建PDF,
谢谢Lexu:这是一个不错的选择,但对我来说不起作用。我也想保存自动生成的pdf文件,以保存在文件系统的某个定义的路径中,并且可以在下次轻松访问。 – Space 2010-04-01 07:22:18
关于LaTeX路线,如果您有rrdcgi以PDF格式生成图表,pdflatex将能够将它们直接整合到文档中,生成具有图形的超级质量pdf ......非常光滑。对不起,没有代码。
它没有Perl绑定,但我昨天刚刚阅读了一个新的服务,可以轻松地将HTML转换为PDF。目前,它处于测试阶段,但它可能值得一看:https://pdfcrowd.com/ – Telemachus 2010-04-01 12:12:11