Конвертировать HTML + CSS в PDF [закрыто]

1629

У меня есть документ HTML (не XHTML), который прекрасно отображается в Firefox 3 и IE 7. Он использует довольно простой CSS для стилизации и отлично отображает в HTML.

Я теперь после способа преобразования его в PDF. Я пытался:

  • DOMPDF : у него были огромные проблемы с таблицами. Я разложил свои большие вложенные таблицы, и это помогло (до того, как он просто потреблял до 128 МБ памяти, затем умирал - это мой предел памяти в php.ini), но он создает полный беспорядок таблиц и, похоже, не получает картинки. Таблицы были просто базовым материалом с некоторыми стилями границ, чтобы добавить несколько строк в разных точках;
  • HTML2PDF и HTML2PS : мне больше повезло с этим. Он рендерил некоторые изображения (все изображения являются URL-адресами Google Chart), и форматирование таблицы было намного лучше, но, похоже, возникла некоторая сложность, которую я еще не выяснил, и продолжал умирать с неизвестными ошибками node_type (). Не уверен, куда идти отсюда; а также
  • Htmldoc : кажется, что это нормально работает с базовым HTML, но почти не поддерживает CSS, поэтому вы должны делать все в HTML (я не знал, что это был 2001 год в Htmldoc-land ...), так что это бесполезно для меня.

Я попробовал приложение для Windows под названием Html2Pdf Pilot, которое на самом деле сделало довольно приличную работу, но мне нужно что-то, что как минимум работает на Linux и идеально работает по требованию через PHP на веб-сервере.

Что мне не хватает, или как я могу решить эту проблему?

Клетуса
источник
9
Html2Pdf фактически использует встроенный экземпляр IE для визуализации страницы, а затем преобразует его в PDF - возможно, через механизм печати IE.
Джоэл Мюллер
55
так как это вопрос 2008 года, dompdf сейчас гораздо более зрелый. ;-)
Хендра Узия
5
DOMPDF теперь поддерживает CSS 2.1 и может иметь дело с @import, @mediaи @screenправила, и будет загружать внешние таблицы стилей. Он также поставляется в комплекте со всем необходимым для его работы, хотя есть вещи, которые вы можете установить, чтобы получить лучшую производительность, чем библиотеки по умолчанию. code.google.com/p/dompdf
totallyNotLizards
6
Обновление 2015: Изучив множество вариантов, мы решили использовать wkhtmltopdf, это хорошая утилита, мы боремся с CSS, потому что у нас есть внешний файл CSS, но затем мы применили хитрость, заключающуюся в том, чтобы добавить фиктивную ссылку CSS на наш элемент HTML, который мы хотим конвертировать и устанавливать правильный путь, он работает как MAGIC !!!
Аншул Нигам
10
Я полагаю, что вскоре все считают Chrome / Chromium безголовым chrome --headless --print-to-pdf="path/to/pdf" https://your_url самым богатым, быстрым и простым инструментом создания html-pdf crbug.com/603559, поскольку он поддерживает большинство функций html-разработчиков, основанных на веб-разработке, и не сосет сложные сценарии, как большинство других библиотеки и инструменты делают.
Эбрахим Бягови

Ответы:

551

Важно: Обратите внимание, что этот ответ был написан в 2009 году, и, возможно, он не самый экономически эффективный вариант сегодня, в 2019 году. Онлайн-альтернативы сегодня лучше, чем были тогда.

Вот некоторые онлайн-сервисы, которые вы можете использовать:


Посмотрите на PrinceXML .

Это, безусловно, лучший конвертер HTML / CSS в PDF, хотя он и не бесплатный (но, эй, ваше программирование может быть и бесплатным, поэтому, если это сэкономит вам 10 часов работы, вы свободны дома (так как вам также нужно принять во внимание, что альтернативные решения потребуют от вас установки выделенного сервера с подходящим программным обеспечением)

О, да, я упоминал, что это первое (и, вероятно, единственное) решение HTML2PDF, которое поддерживает полный ACID2 ?

Образцы PrinceXML

SchizoDuckie
источник
16
Моя компания написала веб-сервис, основанный на принце. Значительно дешевле первоначальные затраты, и их можно использовать без необходимости устанавливать что-либо: docraptor.com
Джоэл Меадор
6
Я тоже использовал DocRaptor. Отличный способ получить выгоду от принца без необходимости платить за дорогую лицензию. Поздравляю с отличным продуктом, Джоэл.
Nate365
22
Слишком дорого. WKHTMLTOPDF (см. Другой ответ) является бесплатным, выполняет свою работу и использует веб-набор, который является отличным.
Томаллен
1
есть услуги Saas равного или лучшего качества за долю цены - см. htm2pdf.co.uk
user1914292
5
Если у вас есть доступ к командной строке и вы не хотите платить 3500 долларов, PhantomJS с этим сценарием: github.com/ariya/phantomjs/blob/master/examples/rasterize.js может быть решением - это бесплатный и простой способ!
Чьортлунд
666

Посмотрите на wkhtmltopdf. Это открытый исходный код, основанный на webkit и бесплатный.

Мы написали небольшой учебник здесь .

РЕДАКТИРОВАТЬ (2017):

Если бы сегодня было что-то строить, я бы больше не пошел этим путем.
Но вместо этого использовал бы http://pdfkit.org/ .
Вероятно, удалив его из всех зависимостей nodejs для запуска в браузере.

Mic
источник
10
Этот работает на лучшую предпосылку ИМО. Ускоренное преобразование из существующего средства визуализации вместо написания с нуля - не тривиальная задача. Кроме того, Webkit написан на C ++ и, следовательно, намного быстрее и требует гораздо меньше ресурсов, чем реализация на основе PHP.
Koobz
3
У нас были огромные проблемы, пытаясь заставить это правильно отображать шрифты на серверах CentOS. Кажется, что буквально после нескольких недель бездельничания единственным вариантом является не использовать CentOS.
Абхи Бекерт,
1
ПРЕДУПРЕЖДЕНИЕ! Если вы используете wkhtmltopdf (по крайней мере, в моей системе, XAMPP в 64-битной Windows 7), во всех случаях, которые я пробовал, изображения .gif не отображаются в файле PDF. Я испробовал несколько обходных путей, предложенных в разных местах, таких как «ширина» и «высота», и написание URI в соответствии с различными соглашениями. Ничто из того, что я пробовал, никогда не приводило к появлению .gif (в частности, даже к предложению "width" и "height", которое я пробовал как с использованием встроенных стилей, так и с использованием архаичных, необработанных атрибутов HTML "width" и "height"). Однако замена изображений на .jpg сработала с первой попытки.
Дан Ниссенбаум
6
Эта абстракция довольно хороша, хотя mikehaertl.github.io/phpwkhtmltopdf
saada
1
Коммерческие сервисы были для нас слишком дорогими, поэтому мы внедрили WKHTMLTOPDF как бесплатный облачный сервис html2pdfrocket.com для всех желающих, а затем использовали его сами для своих клиентов. Мы сделали это таким образом, чтобы нашим клиентам не нужно было устанавливать exe-файлы на свои серверы и т. Д., И они работали кроссплатформенно. Я определенно оцениваю WKHTMLTOPDF, если вы создаете свой собственный сервис.
eagle779
150

После некоторого исследования и общего напряжения решение кажется HTML2PDF . DOMPDF проделал ужасную работу с таблицами, границами и даже умеренно сложным макетом, и htmldoc кажется достаточно надежным, но почти полностью игнорирует CSS, и я не хочу возвращаться к созданию HTML-макета без CSS только для этой программы.

HTML2PDF выглядел самым многообещающим, но у меня все еще была странная ошибка, связанная с нулевыми ссылочными аргументами для node_type Я наконец нашел решение этого. По сути, PHP 5.1.x отлично работал с заменами регулярных выражений (preg_replace_ *) для строк любого размера. PHP 5.2.1 представил конфигурационную директиву php.ini, которая называется pcre.backtrack_limit . Этот параметр конфигурации ограничивает длину строки, для которой выполняется сопоставление. Почему это было введено, я не знаю. Значение по умолчанию было выбрано как 100 000. Почему такая низкая стоимость? Опять не знаю.

Для этого была поднята ошибка в PHP 5.2.1 , которая все еще открыта почти два года спустя .

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

Итак, у меня есть HTML-файл 70 КБ, который можно превратить в PDF. Требуются следующие настройки php.ini:

  • pcre.backtrack_limit = 2000000; # вероятно больше, чем мне нужно, но это нормально
  • memory_limit = 1024M; # да, один гигабайт ; а также
  • max_execution_time = 600; # да, 10 минут .

Теперь проницательный читатель мог заметить, что мой HTML-файл меньше, чем 100КБ. Единственная причина, по которой я могу догадаться, почему я столкнулся с этой проблемой, заключается в том, что html2pdf выполняет преобразование в xhtml как часть процесса. Возможно, это захватило меня (хотя почти 50% раздувания кажется странным). В любом случае, вышесказанное сработало.

Теперь html2pdf - это источник ресурсов. Мой файл 70 КБ занимает приблизительно 5 минут и не менее 500-600 МБ ОЗУ для создания 35-страничного файла PDF. К сожалению, недостаточно быстро (пока) для загрузки в режиме реального времени, и использование памяти устанавливает соотношение использования памяти порядка 1000 к 1 (600 МБ ОЗУ для файла 70 КБ), что совершенно нелепо.

К сожалению, это лучшее, что я придумал.

клем
источник
1
@cletus Можете ли вы рассказать мне о стабильной версии HTML2PDF. Приведенный выше пример ссылки устарел
Ripa Saha
Последнюю версию см. На github.com/spipu/html2pdf
Люк Венке,
1
Мрачная опечатка становится более мрачной: коэффициент использования памяти составляет порядка 10 000 к 1 лол
MickLH
Работает так же плохо, как и mPDF ... быстрее, но не точно ... и преобразование шрифтов TTF невероятно болезненно ... у них даже есть независимая библиотека "tc-lib-pdf-font" только для генерации шрифтов
Мартин Зварик,
125

Почему бы вам не попробовать mPDF версии 2.0 ? Я использовал его для создания PDF документа. Работает нормально.

Между тем, mPDF имеет версию 5.7 и активно поддерживается, в отличие от HTML2PS / HTML2PDF.

Но имейте в виду, что с документацией действительно сложно работать. Например, взгляните на эту страницу: https://mpdf.github.io/ .

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

Karthick
источник
1
Я попробовал кучу предложенных здесь. До сих пор этот загружался и работал из коробки без каких-либо хлопот, и документы действительно потрясающие по сравнению с остальными. Инструкция по применению четко написана.
Смит Смит
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
Stefan
Версия 6.0 работает так, как и ожидалось: включите его (или загрузите в фреймворк), создайте, напишите ваши вещи, выведите его так или иначе ... Вот и все!
toesslab
Ну, MPDF работает хорошо, правда! Но код и документация противоречивы - действительно сложно выполнить более сложную задачу, например, создать письмо, касающееся дин-нормы.
Qullbrune
Утверждает, что это намного медленнее, чем html2fpdf. Но для основного контента я думал, что это было достаточно быстро (счета, отчеты и т. Д.). Огромный плюс для mPDF заключается в том, что вряд ли есть какие-либо требования к расширению PHP (работает "из коробки" на виртуальном хостинге)
Joao
70

1) использовать MPDF !

а) извлечь в 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;
 ?>

в) открыть файл .php из вашего браузера




2) Используйте pdfToHtml !

1) Извлеките pdftohtml.exe в корневую папку:

2) внутри этой папки, в файле anyfile.php , поместите этот код (при условии, что есть также source 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
GrabzIt не является бесплатным
Chatoxz
56

Оформить заказ TCPDF . Он имеет некоторые функции HTML в PDF, которых может быть достаточно для того, что вам нужно. Это также бесплатно!

Darryl Hein
источник
1
его поддержка для рендеринга html довольно ограничена, вы можете прочитать это: tcpdf.org/doc/classTCPDF.html#ac3fdf25fcd36f1dce04f92187c621407
Хендра Узия,
1
но стиль CSS не работает
KBK
32

Я просто попробовал DOMPDF, и он работал отлично. Я использовал DIVи другие элементы уровня блока для позиционирования всего, я строго придерживался CSS 2.1, и он играл очень хорошо.

Филип Дупанович
источник
31

Я предлагаю DocRaptor (который использует PrinceXMLв качестве «двигателя»)

aRahmanS29
источник
К сожалению, невозможно использовать, если вы хотите создавать большие PDF-файлы с большим количеством изображений. Я думаю, что есть 60-секундный временной интервал для запросов, и если Docraptor необходимо загрузить много файлов, это будет превышено, и файл не будет создан.
Вильгельм
1
Эта проблема, упомянутая Вильгельмом, была исправлена.
illbzo1
30

Это уже упоминалось, но я просто хотел бы подтвердить, что mpdf - самый простой, самый мощный и самый бесплатный конвертер HTML в pdf. Небо действительно предел. Вы даже можете сгенерировать PDF динамических пользовательских данных.

Например, клиент хотел систему CMS, чтобы он мог обновить треклист музыки, которую он играл в своем клубе. Это не было проблемой, но он также хотел, чтобы пользователи могли загружать .pdf плейлиста, и поэтому этот загружаемый pdf также должен был обновляться cms. Благодаря mpdf, с некоторыми простыми циклами и переменными переменными, я смог сделать именно это. То, что я думал, заняло бы у меня недели, буквально заняло у меня минуты.

Отличная статья, которая помогла мне начать.

Старкерс
источник
7
PDF плейлиста. Боже, помоги мне.
Хенрик Эрландссон,
29

Хорошие новости! Снаппи !!

Snappy - это очень простая библиотека PHP5 с открытым исходным кодом, позволяющая создавать эскизы, снимки или PDF с URL-адреса или HTML-страницы. И ... он использует отличный wktmltopdf на основе webkit

Наслаждайтесь! ^ _ ^

Пауло Коги - Восстановить Монику
источник
1
Я создал HTTP API, который использует Snappy (на основе wkhtmltopdf). Вы можете передать URL и преобразовать веб-страницу из HTML в PDF: github.com/Dellos7/dhtml2pdf
Дэвид Лопес,
26

Что ж, если вы хотите найти идеальную библиотеку конвертеров XHTML + CSS в PDF, забудьте об этом. Это далеко не возможно. Потому что это все равно что найти идеальный браузер (XHTML + движок рендеринга CSS). У нас есть один? IE или FF?

У меня был некоторый успех с DOMPDF. Дело в том, что вы должны изменить свой HTML + CSS-код, чтобы он соответствовал принципам работы библиотеки. Кроме этого, у меня довольно хорошие результаты.

См. ниже:

Оригинальный HTML

Преобразование HTML в PDF

datasn.io
источник
25

HTML2PDF и html2ps , который был первоначально упомянутый в первом посте говорили о пакете 2009 с этой ссылкой

Но есть лучший HTML2PDF

Он основан на TCPDF, хотя частично на французском.

Вы можете иметь верхние или нижние колонтитулы таблицы, которые повторяются на страницах и имеют номера страниц и общее количество страниц. Смотрите его примеры . Я использую его более трех лет и рекомендую его.

Люк Венке
источник
1
Почему это не сверху? Он работает без каких-либо дополнительных зависимостей и достаточно хорош для приложений большинства людей, не тратя $ 3800!
вырожден
22

Я использую fpdf для создания PDF-файлов с использованием PHP. Пока что у меня хорошо получается производить простые выводы.

stealthyninja
источник
21

В Zezone есть учебник по генерации pdf из php ( часть 1 , часть 2 ) без каких-либо внешних библиотек. Я никогда не реализовывал такого рода решения, но так как это все php, вы можете найти его более гибким для реализации и отладки.

yoavf
источник
Да, но это не конвертирует HTML ... это генерация сырого PDF
Martin Zvarík
16

Попробуйте захватить последнюю ночную сборку dompdf - я использовал более старую версию, которая была ужасным ресурсом и занималась рендерингом моего pdf. После ночного захвата отсюда .

Генерация PDF заняла всего несколько секунд - и он был так же хорошо отрисован, как и с PrinceXML / Docraptor . Похоже, они серьезно оптимизировали код dompdf со времени моего последнего использования!

Arni J
источник
dompdf действительно отличный вариант. Я использовал два раза, и это очень легко. Я рекомендую попробовать dompdf. Вот ссылка для официального репозитория github: github.com/dompdf/dompdf
Rituparna sonowal
16

Упоминание Дэррила Хейна о TCPDF , вероятно, отличная идея. Код Никола Асуни довольно удобный и мощный. Единственное, что убивает, это то, что если вы когда-нибудь планируете объединять PDF-файлы с созданным PDF-файлом, у них нет этих функций. Вам нужно будет создать PDF, а затем объединить его, используя что-то вроде PDFTK от Sid Steward (www.pdflabs.com/tools/pdftk-the-pdf-toolkit/).

Arachnid
источник
13

С точки зрения стоимости использование веб-службы (API) во многих случаях может быть более разумным подходом. Кроме того, отдавая на аутсорсинг этот процесс, вы освобождаете свою собственную инфраструктуру / бэкэнд и - при условии использования уважаемой службы - гарантируете совместимость с настройкой веб-стандартов, времени безотказной работы, коротких сроков обработки и быстрой доставки контента.

Я провел некоторые исследования по большинству веб-сервисов, имеющихся в настоящее время на рынке. Ниже приведены API-интерфейсы, которые, по моему мнению, стоит упомянуть в этой теме, в порядке, основанном на соотношении цены и стоимости. Все они предлагают предварительно составленные классы и пакеты PHP.

  1. pdflayer.com - Стоимость: $ - Качество: ☆☆☆☆
  2. docraptor.com - Стоимость: $$$ - Качество: ☆☆☆☆☆
  3. pdfcrowd.com - Стоимость: $$ - Качество: ☆☆☆

Качественный:

Обладая высококачественным движком PrinceXMLв качестве основы, DocRaptor предлагает наилучшее качество PDF, возвращая хорошо отшлифованные и хорошо преобразованные документы PDF. Тем не менее, служба API pdflayer здесь довольно близка. 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,00 долларов США.

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

Фрэнк
источник
Спасибо за обмен. Я целый день изучал все варианты и больше концентрировался на свободных библиотеках или покупке библиотеки. Ваш ответ снова поможет мне. Я думаю, что для малого бизнеса это экономичный и самый простой способ использования веб-сервисов. Для pdflayer.com; меньше чем 100 долларов в год, чтобы стать безубыточным, нужно 20 или 30 лет, но я не думаю, что мы оставим в том же мире 20 лет спустя :)
добровольно
12

Если у вас есть доступ к командной строке, можно использовать PhantomJS для создания PDFизURL (удаленного или локального).

Это работает очень хорошо, и это бесплатное решение.

Взгляните на этот пример сценария, созданный для этой конкретной задачи.

Hjortlund
источник
но у вас могут быть некоторые проблемы со шрифтами (веб-шрифтами)
Mihai Crăiță
11

Этот вопрос уже довольно старый, но никто не упомянул CutyCapt, так что я буду :)

CutyCapt

CutyCapt - это небольшая кроссплатформенная утилита командной строки для захвата рендеринга WebKit веб-страницы в различные векторные и растровые форматы, включая SVG, PDF, PS, PNG, JPEG, TIFF, GIF и BMP.

Koen.
источник
11

Я рекомендую TCPDF или DOMPDF, в этом порядке.

criss_ae
источник
9

Я не думаю, что класс php будет лучшим для отображения страницы xHtml с помощью css.

Что происходит, когда выходит новое правило CSS? (скоро CSS 3.0 ...)

Лучший способ визуализации HTML-страницы - это, конечно, браузер. Firefox 3.0 может изначально «печатать» в формате pdf, torisugary разработал расширение (печать из командной строки) для его использования. Здесь вы найдете это.

Во всяком случае, есть еще много проблем, связанных с Firefox так же, как PDF-конвертер ...

На данный момент, я думаю, что wkhtmltopdf - лучший (тот, который используется браузером Safari), быстрый, быстрый, потрясающий. Да, и с открытым исходным кодом ... Посмотрите

Strae
источник
PHP полезен, если вы хотите вывести какую-то официальную документацию, такую ​​как квитанция для пользователя, и вы можете использовать CSS, чтобы она выглядела красиво.
Люк Венке
9

Я разработал публичный API для создания PDF-файлов из веб-страниц. Он имеет хороший клиентский класс PHP, который делает его очень простым в использовании. Он использует wkhtmltopdf для рендеринга PDF в облаке.

Не нужно ничего особенного в HTML. Нет необходимости в абсолютных URL-адресах в ссылках images / css / js. Работает на localhost (dev машина) тоже.

В настоящее время служба имеет конечные точки в 4 регионах Azure: Восток США, Запад США, Север ЕС, Юго-Восточная Азия.

Это быстро, так как он использует собственный протокол для отправки содержимого веб-страницы в API для преобразования в PDF.

Это надежно, потому что все конечные точки сбалансированы по нагрузке.

Бесплатный аккаунт доступен для тестирования или низкого использования. Подробности на сайте:

https://rotativahq.com

Джорджио Божио
источник
8

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

PhiLho
источник
Да, верный момент, но я уже думал об этом. В моем HTML нет ни единого, ни нестандартного тега.
Клет
7

Прекрасный рендеринг ничего не значит. Это подтверждает?

Все браузеры делают все возможное, чтобы просто показать что-то на экране, независимо от того, насколько плохой ввод. И, конечно, они не делают то же самое. Если вам нужен тот же рендеринг, что и в FireFox, вы можете использовать его движок рендеринга. Для этого есть генераторы PDF. Хотя это ужасно много работы.

Стефан Эггермонт
источник
7

Хотя уже есть много решений, я рекомендую следующие два:

  1. HTM2PDF - предлагает API для преобразования HTML в PDF, а также имеет PHP SDK, что делает его очень простым для реализации на PHP; Он предлагает выбор серверных мест в Европе, Азии и США.
  2. PDFmyURL - предлагает API, который также обрабатывает URL и HTML в PDF, примерно с той же функциональностью, что и HTM2PDF, но работает в среде с балансировкой нагрузки и работает дольше

Отличие этих двух API от всех ранее упомянутых решений состоит в том, что, помимо преобразования HTML в PDF с помощью CSS и JavaScript, он также предлагает управление правами на PDF, водяные знаки и шифрование. Поэтому это решение «все в одном» для тех, кто хочет взяться за дело.

Отказ от ответственности: я работаю в Kaiomi, компании, которая управляет обоими этими сайтами.

user1914292
источник
Я не хотел бы полагаться на сервис, когда он выставлен на продажу . Учитывая тот факт, что он был продан на этом аукционе, я могу только предположить, что он будет продан в ближайшем будущем?
Робин ван Баален
фактически моя компания приобрела его через некоторое время после аукциона ....
user1914292
В таком случае, полагаю, беспокоиться не о чем.
Робин ван Баален
5

Есть ли на самом деле HTML для преобразования PDF необходимо происходить на стороне сервера с использованием PHP?

Я только что натолкнулся на jsPDF , клиентское решение, использующее HTML5 / JavaScript. MIT-лицензированный код есть и на GitHub .

Оливер Шафельд
источник
для меня библиотека очень ограничена
YXN
5

TCPDF работает нормально, без зависимостей, бесплатен и постоянно исправляется. Он имеет разумную скорость, если предоставленное содержимое HTML / CSS хорошо отформатировано. Обычно я генерирую от 50 до 300 кБ входных данных HTML (включая CSS) и получаю вывод PDF в течение 1-3 секунд с 10-15 страницами PDF.

Я настоятельно рекомендую использовать библиотеку Tidy в качестве средства форматирования HTML перед отправкой чего-либо в TCPDF.

lubosdz
источник
4

Я пробовал много разных библиотек для PHP. Все перечисленное я пробовал. На мой взгляд, библиотека TCPDF - лучший компромисс между производительностью и удобством использования. Это очень просто для установки и использования, а также хорошая производительность в небольших средних приложениях. Если вам нужна высокая производительность и очень большой PDF-документ, используйте модуль Zend_PDF , но будьте готовы к кодированию!

trullallero
источник
Zend PDF не может конвертировать из HTML
Martin Zvarík
3

Веб-API

Если есть люди, которые всегда ищут подобные вещи, есть бесплатный сайт, который позволяет конвертировать HTML-код и страницы в PDF. Существует также (очень маленький) API, который позволяет вам получить PDF-файл из URL.

Проверьте это здесь

Супердрак
источник
2

не PHP , а библиотека Java , которая делает это:

Flying Saucer принимает XML или XHTML и применяет к нему таблицы стилей, совместимые с CSS 2.1, для рендеринга в PDF

Его можно использовать из PHP через system()или аналогичный вызов. Хотя это требует XML правильная форма XMLinput .

Иван Курманов
источник