Создать PDF страницы, используя альтернативную / печатную таблицу стилей - PullRequest
1 голос
/ 29 ноября 2010

Я хочу создать PDF-файл веб-страницы, но применить к нему альтернативную таблицу стилей для печати вместо стилей, которые он использует сейчас.Скажем, например, у меня есть кнопка на http://eorailway.co.uk, чтобы сгенерировать PDF той же страницы (которая запускается и администрируется мной, поэтому я могу включить любой PHP / JS, необходимый для каждой страницы), но я хочуприменить альтернативный стиль к нему перед генерацией PDF.

В настоящее время я использую библиотеку PHP dompdf для генерации PDF с использованием обычной / стандартной таблицы стилей, но пока не могу понять, как применитьпри нажатии на кнопку «Создать PDF» альтернативную таблицу стилей на странице.

Любой совет является наиболее ценным.

Ответы [ 4 ]

1 голос
/ 29 ноября 2010

Поскольку сайт находится под контролем, вы можете динамически решать, какие таблицы стилей включить, основываясь на параметре строки запроса.то есть http://example.com/page.php?stylesheet=print будет выводить из вашего шаблона только альтернативную таблицу стилей, а ваша библиотека PDF получит эту страницу для генерации.

0 голосов
/ 30 ноября 2010

В версии 0.6.0 DOMPDF вы можете указать таблицу стилей для использования, изменив конфигурационную константу DOMPDF_DEFAULT_MEDIA_TYPE.

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

0 голосов
/ 29 ноября 2010

Вы можете использовать материал 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.

0 голосов
/ 29 ноября 2010

Я бы порекомендовал создать альтернативную страницу с примененной таблицей стилей «печать» и указать на нее, используя метатег печати. (например, <link rel="alternate" media="print" href="<? ECHO $_SERVER['PHP_SELF'].'?print'; ?>"">)

Затем пусть PHP определит таблицу стилей для использования на основе наличия этой переменной GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...