1

我想生成一个网页的 PDF,但应用一个备用的打印类型样式表,而不是它现在使用的样式。例如,我在http://eorailway.co.uk上有一个按钮来生成同一页面的 PDF(由我运行和管理,因此我可以包含每个页面所需的任何 PHP/JS)但我想在生成 PDF 之前对其应用替代样式。

目前,我正在使用 dompdf PHP 库使用普通/默认样式表生成 PDF,但我一生都无法想到单击“生成 PDF”按钮时如何将备用样式表应用于页面。

任何建议都非常感谢。

4

4 回答 4

1

由于站点处于控制之下,因此您可以根据查询字符串参数动态决定要包含哪些样式表。即http://example.com/page.php?stylesheet=print将使您的模板仅输出备用样式表,并且您的 PDF 库将获取该页面以生成。

于 2010-11-29T17:30:44.497 回答
0

我建议制作一个应用了“打印”样式表的备用页面,并使用打印元标记指向它。(例如<link rel="alternate" media="print" href="<? ECHO $_SERVER['PHP_SELF'].'?print'; ?>"">

然后让 PHP 根据该 GET 变量的存在来确定要使用的样式表。

于 2010-11-29T17:31:41.890 回答
0

您可以使用 php 中的 DOMXML 内容将特定的 XSLT 文件应用于某些 XML:

 $stylsheet = "Example.xsl";
 $xsldoc = domxml_xslt_stylesheet_file($stylsheet);
 $htmldoc = $xsldoc->process($xmldoc);
 $results_page = $xsldoc->result_dump_mem($htmldoc);

那是我在 php4 中所做的事情,在 5 中可能是一种更简单的方法。

于 2010-11-29T17:38:04.980 回答
0

在 DOMPDF 的 0.6.0 版本中,您可以通过修改 DOMPDF_DEFAULT_MEDIA_TYPE 配置常量来指定要使用的样式表。

http://code.google.com/p/dompdf/source/browse/trunk/dompdf/dompdf_config.inc.php?r=336#234

于 2010-11-30T17:33:21.717 回答