создание PDF с веб-страницы с помощью SWF-файлов

#php #.net #html #pdf #flash

#php #.net #HTML #PDF #flash

Вопрос:

Я пытаюсь сгенерировать PDF с веб-страницы, на которой есть изображения и SWF-файлы.

В конечном pdf-файле должны быть изображения (swf должен быть преобразован в изображение, достаточно последнего кадра).

Я могу сгенерировать pdf, когда есть только изображения, но я застрял в создании pdf, когда на веб-странице есть swf-файлы.

Комментарии:

1. Вы пытаетесь сделать это оперативным путем (вы сидите там и просматриваете веб-страницу, которую хотите превратить в PDF) или вы хотите, чтобы это было «программно», вы помещаете кнопку на страницу, и когда пользователь нажимает на нее, выводится PDF?

2. Спасибо, я хочу, чтобы это было программно, пользователь нажимает на кнопку, и на выходе получается PDF.

3. Разве Adobe acrobat не предоставляет какой-либо API для этого?

Ответ №1:

Я использовал wkhtmltopdf раньше для программной визуализации PDF-файлов с веб-сайтов. Я не уверен, что он справится с swf, но это может сработать, поскольку он использует версию webkit, скомпилированную в qt.

Комментарии:

1. Я пробовал это, это не работает с swf. В pdf это просто рисование заполнителя

Ответ №2:

Возможно, вы сможете использовать wkhtmltopdf --enable-plugins . Но, согласно этому сообщению об ошибке, это может не сработать http://code.google.com/p/wkhtmltopdf/issues/detail?id=48 с помощью плагина flash (Java, однако, делает!).

Другой вариант — запустить браузер в безголовом режиме или на виртуальном X. Firefox3 предположительно работает, если вы используете расширение «CommandLinePrint».

 Xvfb :2 -screen 0 1600x1200x24 amp;
firefox --display=localhost:2.0 -print http://flashgames.com -printmode pdf -printfile '/tmp/test.pdf'
  

Информация, украденная из http://spielwiese.la-evento.com/xelasblog/archives/31-Headless-Firefox-als-HTML-to-PDF.html (однако на немецком языке).

Но есть еще несколько руководств, подобных этому («безголовый браузер, преобразование HTML в PDF»). Я бы полностью ссылался на один из дубликатов здесь, на Stackoverflow. Но я слишком ленив, чтобы искать прямо сейчас.

Комментарии:

1. К вашему сведению, строка поиска «безголовый браузер, из HTML в PDF» выдает 7 результатов, и все они являются этой страницей. 🙂

Ответ №3:

Поскольку вы хотите вывести целевую страницу в формате PDF, я бы рассмотрел использование .rdlc (клиент языка определения отчетов). Это часть пространства имен Microsoft.Reporting и предназначено для работы с asp.net . Его можно свободно использовать и распространять. Во многих случаях макет веб-страницы не «удобен для печати». Используя эту технику, вы можете изменить макет и интервал между выводимыми PDF-файлами, чтобы сделать презентацию более удобной для печати.

Это не позволит «напрямую» преобразовать вашу страницу в PDF, а скорее позволит вам адаптировать макет страницы и данные к набору данных и использовать это для построения отчета. Затем этот отчет может быть выведен программно во время выполнения с использованием элемента управления reportviewer. Если этот подход вас заинтересует, дайте мне знать, и я буду рад предоставить вам дополнительную помощь в его настройке и использовании.