我想生成一個網頁的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