我想生成一个网页的PDF,但应用替代的打印类型样式表,而不是它现在使用的样式。比方说,我有一个http://eorailway.co.uk的按钮来生成同一页面的PDF(由我运行和管理,所以我可以包含每个页面所需的任何PHP/JS),但是我想将替代样式应用于它在生成PDF之前。使用替代/打印样式表生成页面的PDF
目前,我正在使用dompdf PHP库来使用正常/默认样式表生成PDF,但不能在我的生活中考虑如何在单击“生成PDF”按钮时将备用样式表应用于页面。
任何建议是最感谢。
我想生成一个网页的PDF,但应用替代的打印类型样式表,而不是它现在使用的样式。比方说,我有一个http://eorailway.co.uk的按钮来生成同一页面的PDF(由我运行和管理,所以我可以包含每个页面所需的任何PHP/JS),但是我想将替代样式应用于它在生成PDF之前。使用替代/打印样式表生成页面的PDF
目前,我正在使用dompdf PHP库来使用正常/默认样式表生成PDF,但不能在我的生活中考虑如何在单击“生成PDF”按钮时将备用样式表应用于页面。
任何建议是最感谢。
由于网站在控制之下,您可以根据查询字符串参数动态决定要包含哪些样式表。即http://example.com/page.php?stylesheet=print将使您的模板仅输出替代样式表,并且您的PDF库将提取该页面以生成。
我建议制作一个备用页面,应用“打印”样式表,并使用打印元标记指向它。 (例如<link rel="alternate" media="print" href="<? ECHO $_SERVER['PHP_SELF'].'?print'; ?>"">
)
然后让PHP根据该GET变量的存在来确定要使用的样式表。
可以使用DOMXML东西在PHP中一个特定的XSLT文件应用于某些XML:
$stylsheet = "Example.xsl";
$xsldoc = domxml_xslt_stylesheet_file($stylsheet);
$htmldoc = $xsldoc->process($xmldoc);
$results_page = $xsldoc->result_dump_mem($htmldoc);
这东西我在PHP4做,可能会在5
在一个更简单的方法通过修改DOMPDF_DEFAULT_MEDIA_TYPE配置常量,您可以指定要使用的样式表。
http://code.google.com/p/dompdf/source/browse/trunk/dompdf/dompdf_config.inc.php?r=336#234
这是一个很好的可能可行的建议。 – PaulSkinner 2010-11-29 17:37:48