Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как лучше создать PDF-файл с помощью javascript и / или php?

Автор вопроса: keepyourwebОтветов: 6

У меня есть веб-приложение, и мне нужно распечатать данные в формате PDF. В бэкэнде я использую php, а во фронтенде - фреймворк javascript MVC (backbone.js).

Я не знаю, сгенерировать ли pdf только с помощью javascript (.. затем с использованием кеша данных) или с помощью ajax, который вызовет страницу php, которая будет генерировать pdf ... Какое лучшее решение?

Естественно, мне нужно иметь возможность печатать, сохранять и использовать таблицу стилей для PDF.

Спасибо.

  • Javascript: компьютер пользователя сделает всю работу; PHP: ваш собственный сервер выполняет эту работу, что может стать проблемой, если ~ 100 пользователей одновременно генерируют PDF-файлы. sascha 08.11.2011
  • Соответствующие? stackoverflow.com/questions/742271/ Marc B 08.11.2011

javascriptphpajaxpdf-generation

Ответы

Ответ 1 · рейтинг 5 · PiKey

Я предпочитаю mPDF для создания PDF-файлов:

Вы можете сгенерировать PDF-файл с помощью PHP и получить его, выполнив вызов AJAX, это единственный хороший способ. Конечно, в mPDF вы можете стилизовать документ с помощью CSS.

Если вы хотите читать PDF-файлы с помощью javascript, прочтите: Open Source Javascript PDF Viewer

edit: сейчас 2016 год, и mPDF точно не рекомендуется, это устаревшее программное обеспечение. Есть гораздо лучшие, просто взгляните на GitHub:

PHP: https://github.com/search?l=PHP&o=desc&q=pdf&ref=searchresults&s=stars&type=Repositories&utf8=%E2%9C%93

JavaScript: https://github.com/search?utf8=%E2%9C%93&q=node+pdf&type=Repositories&ref=searchresults

Ответ 2 · рейтинг 3 · CambridgeMike

Проверьте DocRaptor, если вам нужно форматирование, чтобы быть точным. Это SaaS, построенный на базе Prince XML.

https://docraptor.com/

Вот пример использования PHP (вывод в электронную таблицу Excel вместо PDF)

https://docraptor.com/documentation#php_example

<?php

$api_key = "YOUR_API_KEY_HERE";
$url = "https://docraptor.com/docs?user_credentials=$api_key";

$document_content = "<table><tr><td>Cell</td></tr></table>";

$request = new HTTPRequest($url, HTTP_METH_POST);
$request->setPostFields(array('doc[document_content]' => $document_content,
                              'doc[document_type]'    => 'xls',
                              'doc[name]'             => 'my_doc.xls',
                              'doc[test]'             => 'true'));
$request->send();

$file = fopen ("my_excel_doc.xls", "w");
fwrite($file, $request->getResponseBody());
fclose ($file);

?>

Ответ 3 · рейтинг 1 · Paul DelRe

Вероятно, вы захотите использовать PHP для создания PDF-файла. Не уверен, есть ли какие-нибудь библиотеки javascript для такого рода вещей. Как сказал @ Sn0opy, это может стать проблемой сервера, хотя, если многие люди создают PDF-файлы (особенно если они большие).

Существует ряд построителей PDF для PHP. Я успешно использовал и html2ps, и tcpdf.

Ответ 4 · рейтинг 1 · Roman Goyenko

Есть несколько чистых js-решений, но они не очень надежны, работают не во всех браузерах. Вы можете посмотреть здесь:

http://andreasgal.com/2011/06/15/pdf-js/ а>

вот их классный пример: http://mozilla.github.com/pdf.js/web/viewer.html

Есть еще этот проект: http://code.google.com/p/jspdf/

Прочтите об ограничениях, и если они слишком велики для вашего проекта, используйте PHP, как советуют люди.

Если вы знаете, что на клиенте установлен плагин flash / acrobat, вы можете использовать их на клиенте для создания PDF-файлов, подробности смотрите здесь: http://www.adobe.com/devnet/acrobat.html

Ответ 5 · Aurelio De Rosa

Мне очень нравится этот для php: html2pdf

Ответ 6 · ckost

Вот запись руководства PHP для расширения PDF в PHP:

http://php.net/manual/en/book.pdf.php

Кроме того, в этой статье показано, что вам нужно сделать для создания PDF-файла на PHP:

http://www.sitepoint.com/generate-pdfs-php/

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы