У меня есть документ HTML (не XHTML), который отлично отображается в Firefox 3 и IE 7. Он использует довольно простой CSS для его стилизации и отлично отображает в HTML.
Теперь мне нужен способ конвертировать его в PDF. Я пытался:
Я попробовал приложение для Windows под названием Html2Pdf Pilot, которое действительно выполнило довольно приличную работу, но мне нужно что-то, что как минимум работает в Linux и в идеале запускается по запросу через PHP на веб-сервере.
Что мне не хватает или как решить эту проблему?
так как это вопрос 2008 года, dompdf сейчас гораздо более зрелый. ;-)
dompdf теперь поддерживает CSS 2.1 и может работать с правилами @import, @media и @screen, а также загружает внешние таблицы стилей. Он также поставляется в комплекте со всем необходимым для его работы, хотя есть вещи, которые вы можете установить, чтобы получить лучшую производительность, чем библиотеки по умолчанию. code.google.com/p/dompdf
Я предполагаю, что правильнее всего сделать так, чтобы браузеры создавали PDF-файл, потому что они единственные, кто выполняет правильный рендеринг. посмотреть этот вопрос stackoverflow.com/q/25574082/39998
Обновление 2015: после изучения множества вариантов мы решили использовать wkhtmltopdf, это хорошая утилита, с которой мы боремся с CSS, потому что у нас есть внешний файл CSS, но затем мы применили трюк, поместив фиктивную ссылку CSS на наш элемент HTML, который мы хотим convert и установив правильный путь он работает как MAGIC !!!
Есть две версии HTML2PDF. Действительно старый (2009 г.), на который я ссылаюсь, и более новый французский, о котором я говорю в своем ответе.
См. Также stackoverflow.com/q/10641667/287948
@HendraUzia К сожалению, у dompdf все еще есть огромные проблемы с отображением таблиц. Добавляет пустые страницы в документ
Вот учебник по DOMPDF. advancetechtutorial.blogspot.com/2015/09/…
вы можете преобразовать свой html со стилями в холст с помощью html2canvas, затем преобразовать холст в изображение с помощью canvasObj.toDataURL ("image / jpeg"), добавить изображение в DOM и передать его своему генератору PHP
Как насчет использования Google Chrome, там вы получаете возможность сохранить как pdf из опции «Печать».
проверьте, что эта библиотека php5 github.com/KnpLabs/snappy проста в использовании и использует "wkhtmltopdf"
Я считаю, что скоро все найдут Chrome / Chromium headless chrome --headless --print-to-pdf = "path/to/pdf" https://your_url как самый богатый, самый быстрый и простой инструмент для создания HTML в PDF crbug.com/603559, поскольку он поддерживает большинство функций HTML, разработчики полагаются на веб-разработку и не используют сложные сценарии, как большинство других библиотек и инструментов. делать.
Вы правы, Chrome headless должен хорошо отображаться, но он будет работать на узле, а не на php.
Этот вопрос не по теме в SO, но по теме в softwarerecs.SE. См. Как преобразовать HTML с помощью CSS в PDF?.
Этот вопрос возвращает мои воспоминания о PHP и DOMPDF в 2010 году. :)
Dompdf - еще один вариант. github.com/dompdf/dompdf
@Hendra Uzia Недостаточно зрелый ... DOM PDF абсолютно худший ... только что сделал быстрый окончательный тест - таблица 100% с 2x 50% столбцами ... с IMG в каждом со 100% шириной ... полностью провалилась .. и выводить миниатюрные изображения
Использую TCPDF. Это хорошо, но в нем отсутствуют возможности CSS.
Сейчас 2020 год, и мне очень сложно что-то создавать с помощью dompdf. И я не говорю о необходимости использовать CSS2. Основные вещи, такие как рендеринг таблицы, плавающие элементы не работают, все глючит, и вы должны задаться вопросом, почему границы уходят слишком далеко влево или почему у первого элемента нет границы. Попытка обойти встроенные блоки и таблицы div, чтобы заставить его работать.






Хороший рендеринг ничего не значит. Подтверждает ли это?
Все браузеры делают все возможное, чтобы просто показать что-то на экране, независимо от того, насколько плохой ввод. И, конечно, они не делают то же самое. Если вы хотите такой же рендеринг, что и FireFox, вы можете использовать его движок рендеринга. Для этого есть генераторы pdf. Однако это очень большая работа.
Возможно, вы могли бы попробовать использовать Tidy, прежде чем передавать файл конвертеру. Если один из модулей рендеринга задыхается от какой-либо проблемы с HTML (например, незакрытого тега), это может помочь.
Да, верный момент, но я уже думал об этом. В моем HTML нет ни непревзойденных, ни нестандартных тегов.
В Zend devzone есть руководство по созданию PDF-файлов из php (часть 1, часть 2) без каких-либо внешних библиотек. Я никогда не реализовывал такого рода решения, но, поскольку это все PHP, вы можете найти его более гибким для реализации и отладки.
обновлены ссылки: Создание PDF с использованием только PHP - Часть 1, Создание PDF с использованием только PHP - Часть 2
Да, но это не конвертирует HTML ... это необработанное создание PDF
Что ж, если вы хотите найти идеальную библиотеку конвертера XHTML + CSS в PDF, забудьте об этом. Это далеко не возможно. Потому что это все равно, что найти идеальный браузер (механизм рендеринга XHTML + CSS). У нас есть такой? IE или FF?
У меня был некоторый успех с DOMPDF. Дело в том, что вам нужно изменить свой код HTML + CSS, чтобы он соответствовал принципу работы библиотеки. В остальном у меня неплохие результаты.
См. ниже:
После некоторого исследования и общего выдергивания волос решение кажется HTML2PDF. DOMPDF ужасно поработал с таблицами, границами и даже умеренно сложным макетом, а htmldoc кажется достаточно надежным, но почти полностью игнорирует CSS, и я не хочу возвращаться к созданию макета HTML без CSS только для этой программы.
HTML2PDF выглядел наиболее многообещающим, но у меня продолжалась странная ошибка, связанная с нулевыми ссылочными аргументами для node_type. Я наконец нашел решение этого. По сути, PHP 5.1.x отлично работал с заменами регулярных выражений (preg_replace_ *) на строки любого размера. PHP 5.2.1 представил конфигурационную директиву php.ini под названием pcre.backtrack_limit. Этот параметр конфигурации ограничивает длину строки, для которой выполняется сопоставление. Почему это было введено, я не знаю. Значение по умолчанию было выбрано 100000. Почему такое низкое значение? Опять же, без понятия.
ошибка была поднята против PHP 5.2.1 для этого, который все еще открыт почти два года спустя.
Что ужасно в этом, так это то, что при превышении лимита заменяется просто тихо терпит неудачу. По крайней мере, если бы ошибка возникла и была зарегистрирована, у вас было бы некоторое представление о том, что произошло, почему и что нужно изменить, чтобы исправить это. Но нет.
Итак, у меня есть файл HTML размером 70 КБ, который нужно преобразовать в PDF. Для этого требуются следующие настройки php.ini:
Проницательный читатель, возможно, заметил, что размер моего HTML-файла меньше 100 КБ. Единственная причина, по которой я могу догадаться, почему я столкнулся с этой проблемой, заключается в том, что html2pdf выполняет преобразование в xhtml как часть процесса. Возможно, это завело меня (хотя почти 50% -ное раздувание кажется странным). Как бы то ни было, вышеуказанное сработало.
Теперь html2pdf потребляет много ресурсов. Для создания 35-страничного PDF-файла моему файлу размером 70 КБ требуется примерно 5 минут и не менее 500-600 МБ ОЗУ. К сожалению, недостаточно быстро (далеко) для загрузки в реальном времени, а использование памяти приводит к соотношению использования памяти порядка 1000 к 1 (600 МБ ОЗУ для файла размером 70 КБ), что совершенно нелепо.
К сожалению, это лучшее, что я придумал.
@cletus, пожалуйста, расскажите мне о стабильной версии HTML2PDF. Приведенный выше пример ссылки устарел
Для последней версии см. github.com/spipu/html2pdf
Мрачная опечатка становится все мрачнее: коэффициент использования памяти порядка 10 000: 1 lol.
Работает так же плохо, как mPDF ... быстрее, но не точно ... и преобразование шрифтов TTF невероятно болезненно ... у них даже есть независимая библиотека tc-lib-pdf-font только для генерации шрифтов
Важный: Обратите внимание, что этот ответ был написан в 2009 году, и, возможно, это не самое экономичное решение на сегодняшний день в 2019 году. Онлайн-альтернативы сегодня лучше, чем они были тогда.
Вот несколько онлайн-сервисов, которыми вы можете воспользоваться:
Взгляните на PrinceXML.
Это определенно лучший конвертер HTML / CSS в PDF, хотя он и не бесплатный (но, эй, ваше программирование тоже может быть платным, поэтому, если это сэкономит вам 10 часов работы, вы дома бесплатно (так как вам также нужно учтите, что альтернативные решения потребуют от вас установки выделенного сервера с правильным программным обеспечением)
О да, я уже упоминал, что это первое (и, вероятно, единственное) решение HTML2PDF, которое полностью поддерживает ACID2?
Кажется, вы можете скачать только настольную версию. Я действительно хотел бы попробовать серверную версию. Но настольная версия проделала превосходную работу (такая же, как моя последняя версия html2pdf, но практически мгновенно). Спасибо за рекомендацию.
Моя компания написала веб-сервис, построенный на базе Prince. Значительно более низкие первоначальные затраты и возможность использования без необходимости устанавливать что-либо: docraptor.com
Я тоже использовал DocRaptor. Отличный способ воспользоваться преимуществами Prince, не платя за дорогостоящую лицензию. Поздравляю с отличным продуктом, Джоэл.
Слишком дорого. WKHTMLTOPDF (см. Другой ответ) бесплатен, выполняет свою работу и использует webkit, что потрясающе.
Prince или DocRaptor плохо справляются с недействительными входными данными. wkhtmltopdf или pdfcrowd имеют гораздо лучший рендеринг по более низкой цене.
есть Saas-сервис такого же или лучшего качества за небольшую часть цены - см. htm2pdf.co.uk
Я предполагаю, что правильнее всего сделать так, чтобы браузеры создавали pdf-файл, потому что они единственные, кто выполняет правильный рендеринг css / js. посмотреть этот вопрос stackoverflow.com/q/25574082/39998
Если у вас есть доступ к командной строке и вы НЕ хотите платить 3500 долларов, PhantomJS с этим скриптом: github.com/ariya/phantomjs/blob/master/examples/rasterize.js может быть решением - это бесплатный и простой способ!
Одним из огромных преимуществ является то, что механизм компоновки Prince поддерживает все поля страницы: ссылка на сайт. Но цена действительно кое-что.
В самом деле? Никто здесь не упомянул FPDF?
@ technology101010 нет. потому что этот вопрос касается преобразования html в pdf. Не создавать PDF-файлы с нуля.
Какую альтернативу без Интернета вы бы порекомендовали на 2018 год?
@DFSFOT: Определенно pdfshift. Проверь их!
@SchizoDuckie PDFShift работает только с платформой, верно? Вы получаете API-ключ и просто отправляете его им? Я не могу использовать это, потому что бесплатный план ограничен, и мне нужно сгенерировать PDF-файлы для проекта клиента, у меня не может быть таких ограничений, и я не могу заставить их платить за это. Кроме того, это выглядит очень надежным решением, просто не подходящим для меня. :(
Я знаю, что это старая тема, но мы написали сервис под названием [cloudlayer.io] (cloudlayer.io), который может сделать это дешевле, чем любой из упомянутых выше. Мы также поможем вам интегрироваться и тесно сотрудничать с вами или разработчиками над проектом.
Просто чтобы поднять тему, я попробовал DOMPDF, и он отлично сработал. Я использовал DIV и другие элементы блочного уровня, чтобы расположить все, я строго придерживался CSS 2.1, и он играл очень хорошо.
Я использую fpdf для создания файлов PDF с помощью PHP. У меня пока хорошо получается производить простые результаты.
Оформить заказ TCPDF. Он имеет некоторые функции HTML в PDF, которых может хватить для того, что вам нужно. Это также бесплатно!
его поддержка для рендеринга html довольно ограничена, вы можете прочитать это: tcpdf.org/doc/classTCPDF.html#ac3fdf25fcd36f1dce04f92187c621 407
но стиль css не работает
Я не думаю, что класс php будет лучшим для рендеринга страницы xHtml с помощью css.
Что произойдет, когда выйдет новое правило css? (скоро css 3.0 ...)
Очевидно, лучший способ визуализировать html-страницу - это браузер. Firefox 3.0 может изначально «печатать» в формате pdf, torisugary разработал расширение (печать из командной строки) для его использования. Вот и найдешь.
В любом случае, есть еще много проблем с запуском firefox просто в качестве конвертера pdf ...
На данный момент я думаю, что wkhtmltopdf - лучший (это тот, который используется браузером Safari), быстрый, быстрый, потрясающий. Да, тоже с открытым исходным кодом ... Посмотри
PHP полезен, если вы хотите вывести какую-либо официальную документацию, такую как квитанция для пользователя, и вы можете использовать CSS, чтобы она выглядела красиво.
Взгляните на wkhtmltopdf. Это открытый исходный код, основанный на webkit и бесплатный.
Мы написали небольшой туториал здесь.
РЕДАКТИРОВАТЬ (2017):
Если бы он хотел что-то построить сегодня, я бы больше не пошел по этому пути. Но вместо этого использовал бы http://pdfkit.org/. Вероятно, лишив его всех зависимостей nodejs для запуска в браузере.
Этот работает на лучших предпосылках ИМО. Ускорить преобразование существующего рендерера вместо того, чтобы писать его с нуля - нетривиальная задача. Кроме того, Webkit написан на C++ и, следовательно, намного быстрее и требует гораздо меньше ресурсов, чем реализация на основе PHP.
Это здорово. К сожалению, это требует, чтобы клиентские библиотеки X11 были установлены на сервере.
У нас были огромные проблемы, пытаясь заставить это правильно отображать шрифты на серверах CentOS. После буквально недель возни кажется, что единственный вариант - не использовать CentOS.
@Mic: жаль, что это двоичный код, вам нужен root-доступ к серверу, чтобы установить двоичный код. В планах общего / реселлерского хостинга вы можете забыть использовать этот WKhtmlToPDF.
ПРЕДУПРЕЖДЕНИЕ! Если вы используете wkhtmltopdf (по крайней мере, в моей системе, XAMPP в 64-разрядной версии Windows 7), во всех случаях, которые я пробовал, изображения .gif не отображаются в файле PDF. Я попробовал ряд обходных решений, предложенных в разных местах, например, включение «ширины» и «высоты» и запись URI в соответствии с различными соглашениями. Ничто из того, что я пробовал, не приводило к появлению .gif (в частности, даже предложения «ширина» и «высота», которые я пробовал как с использованием встроенных стилей, так и с использованием архаичных, необработанных атрибутов HTML «ширина» и «высота»). Однако замена изображений на .jpg сработала с первой попытки.
Недавно я установил wkhtmltopdf на Virtualbox CentOS 6, и он работал нормально. Вам не обязательно нужен root-доступ, есть статические двоичные файлы, которые вы можете получить и использовать (проверено на вышеупомянутой CentOS). Я слышал, что отсутствие X11 может быть проблемой, но не для меня. Однако это правда, что гифки вообще не работают. Я конвертирую их в PNG на лету и обычно стараюсь предпочесть другие форматы.
WKHTMLTOPDF очень хорош. Прежде чем использовать его, я проделал свою работу, конвертировав много HTML в PDF за один день. Но с WKHTMLTPDF теперь я делаю свою работу по их преобразованию всего за 15 минут.
Эта абстракция довольно хороша, хотя mikehaertl.github.io/phpwkhtmltopdf
где он хранит преобразованный файл pdf в windows env, например. ВАМП? Когда я запускаю команду через командный инструмент, он показывает прогресс и завершение, но я не могу найти выходной файл на своем компьютере? лол .. пожалуйста, помогите
@AbhiBeckert: У меня была такая же проблема с Debian и Fedora, и годы спустя она, кажется, была обнаружена и решена: github.com/wkhtmltopdf/wkhtmltopdf/issues/45.
Коммерческие услуги были для нас слишком дорогими, поэтому мы реализовали WKHTMLTOPDF как бесплатную облачную службу html2pdfrocket.com для всех, а затем использовали ее сами для наших клиентов. Мы сделали это таким образом, чтобы нашим клиентам не приходилось устанавливать исполняемые файлы на свои серверы и т. д., И они работали на разных платформах. Я определенно оцениваю WKHTMLTOPDF, если вы создаете свой собственный сервис.
Действительно, очень мило. Мне просто интересно, возможно ли, чтобы в выходном pdf не было выделяемого текста? (Я нахожусь в Win7 Home.) Узнаваемый текст делает PDF-файл хрупким, когда дело доходит до печати.
Просто открыл репозиторий Github, чтобы показать, как сгенерировать счет в формате PDF DinA4 с использованием HTML5 + CSS + PHP + wkhtmltopdf. Легко регулируется. github.com/rockdaboot/invoice-html5-to-pdf
wkhtmltopdf довольно хорош. Я только что создал HTTP API с PHP, который позволяет передавать URL-адрес веб-страницы и конвертирует его из HTML в PDF с помощью wkhtmltopdf: github.com/Dellos7/dhtml2pdf
Установка на CentOS 6/7 проста yum --enablerepo=epel-testing install wkhtmltopdf Xvfb. Обратите внимание, что wkhtml эмулирует браузер, поэтому, если на странице загружаются шрифты Google, необходимо включить доступ в Интернет. Также при использовании через php-fpm необходимо установить переменную среды с путем к исполняемому двоичному файлу, например. в /etc/php-fpm.d/www.conf установите env[PATH] = "/usr/bin", поскольку дочерний процесс fpm по умолчанию очищает родительскую среду.
Почему бы вам больше не использовать wkhtmltopdf?
Вероятно, потому что движок не поддерживает новые функции html / css / js, так как он некоторое время не обновлялся. @Прометей
Почему бы вам не попробовать mPDF версии 2.0? Я использовал его для создания PDF документа. Работает нормально.
Между тем mPDF находится в версии 5.7 и активно поддерживается, в отличие от HTML2PS / HTML2PDF.
Но имейте в виду, что с документацией действительно сложно справиться. Например, взгляните на эту страницу: https://mpdf.github.io/.
С помощью этой библиотеки можно выполнять очень простые задачи, связанные с HTML в PDF, но для более сложных задач потребуется некоторое время, чтобы прочитать и «понять» документацию.
Я попробовал несколько из предложенных здесь. Пока что этот был загружен и работал из коробки без каких-либо проблем, и документы действительно потрясающие по сравнению с остальными. Инструкции по применению четко написаны.
mPDF вызывает у меня серьезные затруднения при отправке HTML-тегов с фоном изображения или тегов из базы данных: mPDF error: IMAGE Error (http://www.example.com/folder/image.jpg): Error parsing image file - image type not recognised, and not supported by GD imagecreate
Версия 6.0 работает точно так же, как и ожидалось: включите ее (или загрузите во фреймворк), создайте экземпляр, заполните своим материалом, выведите его так или иначе ... Вот и все!
Что ж, MPDF работает хорошо, правда! Но код и документация несовместимы - действительно сложно выполнить более сложную задачу, например. составление письма по din-норме.
Утверждает, что он намного медленнее, чем html2fpdf. Но для базового контента я думал, что это достаточно быстро (счета, отчеты и т. д.). Огромный плюс для mPDF в том, что почти нет требований к расширению PHP (работает из коробки на виртуальном хостинге).
Лицензирование также улучшилось в лучшую сторону. Mpdf - это способ создать PDF-файл из HTML и CSS.
Я не рекомендую 5.7 для части вопроса, касающейся CSS. Не ждите от своего HTML особого стиля.
Упоминание Даррилом Хайном TCPDF выше, вероятно, отличная идея. Код Никола Асуни довольно удобный и мощный. Единственный убийца - если вы когда-нибудь планируете объединить PDF-файлы с созданным PDF-файлом, у него нет этих функций. Вам нужно будет создать PDF-файл, а затем объединить его, используя что-то вроде PDFTK от Сида Стюарда (www.pdflabs.com/tools/pdftk-the-pdf-toolkit/).
Я предлагаю DocRaptor (который использует PrinceXML в качестве "двигателя")
К сожалению, невозможно использовать, если вы хотите создавать большие PDF-файлы с большим количеством изображений. Я думаю, что есть ограничение по времени на запросы 60 секунд, и если Docraptor нужно загрузить много файлов, это будет превышено, и файл не будет создан.
Проблема, о которой упоминал Вильгельм, исправлена.
Попробуйте взять последнюю ночную сборку dompdf - я использовал старую версию, которая требовала ужасных ресурсов и требовала целую вечность, чтобы отобразить мой PDF-файл. После того, как вы взяли еженедельник от здесь.
Для создания PDF-файла потребовалось всего несколько секунд - и он был так же хорошо отрисован, как и с PrinceXML / Докраптор. Похоже, они серьезно оптимизировали код dompdf с тех пор, как я его использовал в последний раз!
dompdf - действительно отличный вариант. Я использовал два раза, и это очень просто. Рекомендую попробовать dompdf. Вот ссылка на официальный репозиторий github: github.com/dompdf/dompdf
Хорошие новости! Мгновенно !!
Snappy - это библиотека PHP5 с открытым исходным кодом очень просто, позволяющая создавать эскизы, снимки или PDF-файлы из URL-адреса или HTML-страницы. И ... он использует wkhtmltopdf на основе веб-набора отлично
Наслаждаться! ^ _ ^
Я создал HTTP API, использующий Snappy (на основе wkhtmltopdf). Вы можете передать URL-адрес и преобразовать веб-страницу из HTML в PDF: github.com/Dellos7/dhtml2pdf
Этот вопрос уже довольно старый, но я не видел, чтобы кто-нибудь упоминал CutyCapt, поэтому я буду :)
CutyCapt
CutyCapt is a small cross-platform command-line utility to capture WebKit's rendering of a web page into a variety of vector and bitmap formats, including SVG, PDF, PS, PNG, JPEG, TIFF, GIF, and BMP
не PHP, а Библиотека Ява, который делает вот что:
Flying Saucer takes XML or XHTML and applies CSS 2.1-compliant stylesheets to it, in order to render to PDF
Его можно использовать из PHP через system() или аналогичный вызов. Хотя для этого требуется XML правильного формата input.
Об этом уже упоминалось, но я просто хотел бы подтвердить, что mpdf - это самый простой, самый мощный и самый бесплатный конвертер HTML в pdf. Небо действительно предел. Вы даже можете создать PDF-файл с динамическими данными, созданными пользователями.
Например, клиенту нужна была система CMS, чтобы он мог обновлять список треков музыки, которую он играл в своем клубе. Это не было проблемой, но он также хотел, чтобы пользователи могли загружать .pdf плейлиста, и поэтому этот загружаемый pdf-файл также должен был быть обновлен cms. Благодаря mpdf, с некоторыми простыми циклами и перемежающимися переменными я смог это сделать. То, что, как я думал, займет у меня недели, буквально заняло у меня минуты.
Отличный статья, который помог мне начать работу.
PDF-файл со списком воспроизведения. Боже, помоги мне.
Я рекомендую TCPDF или DOMPDF именно в таком порядке.
Я пробовал много разных библиотек для PHP. Все перечисленное я перепробовал. На мой взгляд, библиотека TCPDF - лучший компромисс между производительностью и удобством использования. Его очень просто установить и использовать, а также хорошая производительность в небольших и средних приложениях. Если вам нужна высокая производительность и очень большой PDF-документ, используйте модуль Zend_PDF, но будьте готовы к написанию кода!
Zend PDF не может конвертировать из HTML
Действительно ли преобразование HTML в PDF нужно происходит на стороне сервера с использованием PHP?
Я только что наткнулся на jsPDF, клиентское решение, использующее HTML5 / JavaScript. Лицензированный MIT код находится на GitHub тоже.
для меня библиотека очень ограничена
а) извлечь в yourfolder
б) создать file.php в yourfolder и вставить такой код:
<?php
include('../mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<p style = "color:red;">Hallo World<br/>Fisrt sentencee</p>');
$mpdf->Output(); exit;
?>
в) откройте file.php из вашего браузера
1) распакуйте pdftohtml.exe в корневую папку:
2) внутри этой папки в файле anyfile.php поместите этот код (при условии, что есть также исходный файл example.pdf):
<?php
$source = "example.pdf";
$output_fold = "FinalFolder";
if (!file_exists($output_fold)) { mkdir($output_fold, 0777, true);}
$result= passthru("pdftohtml $source $output_fold/new_filename",$log);
//var_dump($result); var_dump($log);
?>
3) введите FinalFolder, и будут преобразованные файлы (столько же страниц, сколько было в исходном PDF ..)
Я бы попробовал GrabzIt, их API поддерживает CSS, JavaScript и большинство других типов ресурсов. На него просто нужно ссылаться с помощью абсолютного URL-адреса или сделать его встроенным и включить в HTML-код, отправляемый в службу. Попробуйте здесь: grabz.it/html-to-pdf-image-api.aspx
ГрабзЭто не бесплатно
TCPDF работает нормально, без зависимостей, бесплатен и постоянно исправляется. Он имеет разумную скорость, если предоставленное содержимое HTML / CSS хорошо отформатировано. Обычно я генерирую от 50 до 300 КБ входного HTML (включая CSS) и получаю PDF-файл в течение 1-3 секунд с 10-15 PDF-страницами.
Я настоятельно рекомендую использовать библиотеку аккуратный в качестве средства форматирования HTML перед отправкой чего-либо в TCPDF.
Хотя уже существует множество решений, я рекомендую следующие два:
Отличие этих двух API от всех ранее упомянутых решений состоит в том, что помимо преобразования HTML в PDF с помощью CSS и JavaScript, он также предлагает управление правами PDF, водяные знаки и шифрование. Поэтому это универсальное решение для тех, кто хочет взяться за дело.
Отказ от ответственности: я работаю в Kaiomi, компании, которая управляет обоими этими веб-сайтами.
Я бы не хотел полагаться на сервис, когда это выставлено на продажу. Учитывая тот факт, что он не был продан на том аукционе, я могу только предположить, что он будет продан в ближайшем будущем?
на самом деле моя компания приобрела его через некоторое время после аукциона ....
В таком случае, полагаю, не о чем беспокоиться.
Если у вас есть доступ к командной строке, можно использовать PhantomJS для создания PDF из URL (удаленного или локального).
Это действительно хорошо работает, и это бесплатное решение.
Взгляните на этот сценарий пример, созданный именно для этой проблемы.
но у вас могут быть проблемы со шрифтами (веб-шрифтами)
HTML2PDF и HTML2PS, который изначально упоминался во вступительном посте, говорил о пакете 2009 года с этим ссылка на сайт
Но есть HTML2PDF получше
Он основан на TCPDF, хотя частично на французском языке.
У вас могут быть верхние или нижние колонтитулы таблиц, которые повторяются на страницах и содержат номера страниц и общее количество страниц. См. его примеры. Пользуюсь им уже более трех лет и рекомендую.
Почему это не наверху? Он работает без каких-либо дополнительных зависимостей и составляет достаточно хорошо для большинства приложений, не тратя 3800 долларов!
С точки зрения стоимости использование веб-службы (API) во многих случаях может быть более разумным подходом. Кроме того, передавая этот процесс на аутсорсинг, вы освобождаете свою собственную инфраструктуру / серверную часть и - при условии, что вы пользуетесь услугами уважаемой службы - обеспечиваете совместимость с настройкой веб-стандартов, временем безотказной работы, коротким временем обработки и быстрой доставкой контента.
Я провел некоторое исследование большинства веб-сервисов, представленных в настоящее время на рынке, ниже приведены API-интерфейсы, которые, как мне кажется, стоит упомянуть в этой теме, в порядке, основанном на соотношении цена / стоимость. Все они предлагают готовые классы и пакеты PHP.
Качество:
Имея в основе высококачественный движок PrinceXML, DocRaptor явно предлагает лучшее качество PDF, возвращая отполированные и хорошо преобразованные PDF-документы. Однако служба pdflayer API здесь довольно близко. Pdfcrowd не обязательно оценивается по качеству, но по скорости обработки.
Расходы:
pdflayer.com - Как указано выше, наиболее экономичным вариантом здесь является pdflayer.com, предлагающий полностью бесплатный план подписки на 100 ежемесячных PDF-файлов и премиальные подписки в диапазоне от 9,99 до 119,99 долларов США. Стоимость 10 000 PDF-документов в месяц составляет 39,99 долларов США.
docraptor.com - Предлагается 7-дневный бесплатный пробный период. Тарифные планы премиум-класса варьируются от 15 до 2250 долларов. Стоимость 10 000 PDF-документов в месяц составляет ~ 300 долларов США.
pdfcrowd.com - Предлагает 100 PDF-файлов однажды бесплатно. Тарифные планы премиум-класса варьируются от 9 до 89 долларов. Стоимость 10 000 PDF-документов в месяц составляет ~ 49 долларов США.
Я использовал все три из них, и этот текст должен помочь любому принять решение без необходимости платить за все из них. Этот текст не был написан для поддержки какого-либо продукта, и я не имею отношения к какому-либо из этих продуктов.
Спасибо за обмен. Я исследовал все варианты целый день и сосредоточился больше на бесплатных библиотеках или покупке библиотеки. Ваш ответ поможет мне снова подумать. Я думаю, для малого бизнеса это самый экономичный и простой способ использования веб-сервисов. Для pdflayer.com; менее 100 долларов в год, чтобы окупиться, требуется 20 или 30 лет, но я не думаю, что мы уедем в тот же мир 20 лет спустя :)
Я разработал общедоступный API для создания файлов PDF с веб-страниц. У него есть хороший клиентский класс PHP, который делает его очень простым в использовании. Он использует wkhtmltopdf для рендеринга PDF-файла в облаке.
Не нужно ничего особенного в HTML. Нет необходимости в абсолютных URL-адресах в ссылках images / css / js. Также работает на localhost (dev-машина).
В настоящее время у службы есть конечные точки в 4 регионах Azure: Восток США, Запад США, Север ЕС, Юго-Восточная Азия.
Это быстро, поскольку он использует проприетарный протокол для отправки содержимого веб-страницы в API для преобразования в PDF.
Это надежно, потому что все конечные точки сбалансированы по нагрузке.
Бесплатная учетная запись доступна для тестирования или небольшого использования. Подробности на сайте:
Html2Pdf фактически использует встроенный экземпляр IE для рендеринга страницы, а затем преобразует его в PDF - вероятно, через механизм печати IE.