使用备用/打印样式表生成页面PDF

时间:2010-11-29 17:28:13

标签: php pdf stylesheet alternate

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

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

非常感谢任何建议。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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中可能是一种更简单的方法。

答案 3 :(得分: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