我创建了一个rrdcgi脚本来用图表显示有关系统性能的信息。现在,我想为用户添加一个选项,以使用当前页面(图像和信息)以及页眉和页脚上的详细信息即时创建 PDF。我还希望将生成的 PDF 文件保存在某个位置,以便下次可以轻松访问。这可能与rrdcgi或任何 Perl 代码有关,将不胜感激。
我需要这个选项
您需要考虑要在 PDF 中放入的内容:您是否想要用户正在查看的网页的精确副本(如果不将用户的浏览器安装在您身边并使用其打印输出,这几乎是不可能的)还是您想要在大致相似的布局中获得相同的信息?
一个重要的问题是如何生成 HTML:我曾经做过类似的事情来为实验参与者生成 PDF 收据(现在,我只是输出带有打印样式的 HTML)。
HTML 是使用HTML::Template生成的,尽管Template.pm也可以。
然后编写另一个模板很简单,该模板生成可以使用pdflatex处理的L A T E X文档。如果您在请求快照时保存数据,则可以将快照添加到异步生成文档的队列中,这样请求就不会占用 Web 服务器。
更新:看着rrdcgi,我现在意识到它已经使用了模板。这是完美的:不要将 HTML 放入模板中,而是将L A T E X代码放入模板中,并使用创建 L A T Errdcgi
X 源文件的选项运行,您可以通过. 我想要解决的问题是能够使用与生成用户正在查看的页面完全相同的数据。--filter
pdflatex
如果无法rrdcgi
使用完全相同的数据重新运行,请考虑将一些 JavaScript 提交给用户正在查看的页面的 HTML 源(或一些 JSON 表示)到解析 HTML 并输出 L A的 CGI 脚本T E X. 在原始模板中编写干净的 HTML 并明智地使用class
和id
属性将对此有所帮助。
我现在没有时间测试这些想法中的任何一个,但我会在接下来的几天内再次查看。
值得付出努力吗?
为什么不添加一个常见问题解答,解释如何在 Windows/MAC/Linux 上设置 PDF 打印机并提供一个可以打印的“干净”页面?
由于您显然必须创建 PDF,
关于 LaTeX 路线,如果您有 rrdcgi 生成 pdf 格式的图形,pdflatex 将能够将它们直接集成到文档中,生成带有图形的超高质量 pdf ......非常漂亮。对不起,没有代码。