如何从rrdcgi创建PDF输出?

时间:2010-04-01 06:54:33

标签: html perl rrdtool

我创建了一个rrdcgi脚本,用图表显示有关系统性能的信息。现在我想为用户添加一个选项,以便在运行时创建PDF,其中包含当前页面(图像和信息)以及页眉和页脚的详细信息。我还希望将生成的PDF文件保存在某个位置,以便下次可以轻松访问。这可能与rrdcgi有关,或者任何Perl代码都会非常感激。

我需要这个选项

3 个答案:

答案 0 :(得分:1)

你需要考虑你想要放在PDF中的内容:你想要一个用户正在查看的网页的精确副本(如果没有安装用户的浏览器并使用它,那就太难以接近了)打印输出)或者您希望在大致相似的布局中使用相同的信息吗?

一个重要的问题是如何生成HTML:我做过类似的事情,为实验参与者生成PDF收据(现在,我只是output HTML with print styles)。

HTML是使用HTML::Template生成的,尽管Template.pm也一样好。

然后编写另一个模板,生成LATEX文档,可以使用pdflatex进行处理。如果在请求快照时保存数据,则可以将快照添加到异步生成文档的队列中,以便请求不会占用Web服务器。

更新:查看rrdcgi,我现在意识到它已经使用了模板。这很完美:不是将HTML放在模板中,而是将LATEX代码放在模板中并使用rrdcgi选项运行--filter以创建L A T E X源文件,您可以通过pdflatex运行。我想要解决的问题是能够使用用于生成用户正在查看的页面的完全相同的数据。

如果无法使用完全相同的数据重新运行rrdcgi,请考虑添加一些JavaScript,将用户正在审阅的页面的HTML源(或其某些JSON表示)提交到CGI脚本解析HTML并输出L A T E X.在原始模板中编写干净的HTML并明智地使用classid属性会对此有所帮助。

我现在没有时间测试这些想法,但我会在接下来的几天内再看看。

答案 1 :(得分:0)

值得努力吗?

为什么不添加一个常见问题解答,解释如何在Windows / MAC / Linux上设置PDF打印机并提供一个可以打印的“干净”页面?


因为你显然必须创建PDF,

答案 2 :(得分:0)

关于LaTeX路线,如果你有rrdcgi生成pdf格式的图形,pdflatex将能够将它们直接集成到文档中,用图形生成超高质量的pdf ......非常光滑。对不起,没有代码。