Спиннинг PDF, передавая URL и параметры $ _GET? - PullRequest
0 голосов
/ 12 мая 2009

Я потратил много времени, пытаясь заставить dompdf (http://www.digitaljunkies.ca/dompdf/) работать, но продолжаю сталкиваться с проблемами. Я пытаюсь сгенерировать PDF из скрипта PHP, который генерирует довольно сложную, заполненную сеть форма. Сценарий принимает параметр $ _GET (номер записи) и заполняет форму соответственно данными из базы данных. У меня нет проблем с получением этих данных в сценарий в виде строки или любого типа значения на самом деле. Что мне интересно, так это Каков наилучший подход для преобразования данных этого типа в PDF?

Процесс выглядит следующим образом: пользователь заполняет форму и перенаправляется на страницу подтверждения, на которой я хотел бы добавить кнопку «Сохранить как PDF». В этот момент может произойти одно из двух: страница, отображаемая в данный момент в браузере, может быть развернута непосредственно в pdf, или вызов самого себя (scriptname.php? Id = xyz) может быть выполнен с использованием чего-то вроде http_get (PHP) ) и сохраните HTML в виде строки. После этого у меня возникают проблемы с подготовкой точного представления в формате PDF.

Я слышал некоторые разговоры о fpdf, но их примеры не внушают мне уверенности, что вы можете использовать динамические данные в качестве источника, но, пожалуйста, исправьте меня, если я ошибаюсь по этому поводу.

Любой вклад будет оценен.

- Николай

Ответы [ 2 ]

0 голосов
/ 12 мая 2009

В прошлом, когда сталкивался с этой проблемой, я использовал FPDF для размещения данных в шаблоне PDF. Затем, установив соответствующий заголовок HTTP, заставьте браузер открыть окно «Загрузить / Сохранить как», чтобы пользователь мог сохранить указанный PDF.

В классе, который соответствующим образом расширяет FPDF / FPDI, используйте что-то вроде следующего, чтобы сгенерировать PDF из уже созданного вами шаблона PDF (http://www.setasign.de/products/pdf-php-solutions/fpdi/):

$this->setSourceFile('pdf_template.pdf');
$template_page = $this->importPage(1, '/MediaBox');
$this->useTemplate($template_page, 0, 0);

Затем FPDF сгенерирует PDF для вывода, используя:

$this->Output();

Вы также можете расширить FPDF для принятия (ограниченного) HTML для форматирования, используя скрипт, найденный здесь: http://www.fpdf.org/en/script/script41.php

0 голосов
/ 12 мая 2009

Ну, я не знал dompdf. Странно, что он использует либо коммерческую библиотеку (PDFlib), либо устаревшую (?) Библиотеку (CPDF, не обновлялась в течение 3 лет). Но хорошо, пока это работает (концепция интересна).

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

Вы не можете преобразовать HTML-страницу в PDF с помощью FPDF, но у вас есть достаточно точное управление макетом, используя концепцию ячеек с данными.
Вы можете увидеть такой код там: http://svn.prestashop.com/trunk/classes/PDF.php

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