PHP конвертирование HTML в PDF пропорционально

Я создаю веб-сайт Web2Print с использованием PHP, MySQL и jQuery. Основная концепция веб-сайта заключается в том, что конечные пользователи могут создавать HTML-шаблон, добавляя текст, изображения, перетаскивание, изменение размера и т. Д. Динамически и преобразовывать его в формат PDF формата PDF с высоким разрешением затем переходит к печати.

Например, см. Ссылку http://optisolbusiness.com/funeral_site/sample/index/id/255 . Это образец HTML, который должен быть преобразован в PDF. Ширина и высота веб-страницы HTML составляет 356×405 пикселей. Проблема заключается в том, что я конвертирую ее в формат PDF PDF 8.5X11.69, в то время как в HTML очень мало HTML.

Поэтому мне нужно увеличить ширину и высоту HTML, чтобы он соответствовал размеру PDF, при увеличении размера HTML до 8.5X11.69in. Содержимое внутри HTML также должно увеличиваться пропорционально (т. Е. Размер шрифта текста, фоновое изображение, ширина и высота изображений, верхний левый также должен увеличиваться пропорционально. PDF должен соответствовать точно так же, как и HTML. Я использую онлайн-API htmlpdf.com для преобразования в PDF.

Как это сделать? Существует несколько подходов, но вы должны быть готовы провести собственное исследование. Вы можете нарисовать PDF-файлы различными способами:

  • использование графических примитивов в библиотеках PHP, таких как FPDF и TCPDF
  • используя программное обеспечение для создания отчетов с шаблонами документов, такими как JasperReports (требуется доступ к корневому серверу)
  • путем преобразования из HTML, скажем, через wkhtmltopdf (бесплатно) или Prince (дорогой)
  • манипулируя SVG и передавая его в PDF, скажем, в Inkscape (я не видел других людей, принимающих такой подход, но у меня есть рабочая демонстрация – см. здесь . Рекомендуется только, если вам удобно манипулировать XML программно)

Помните, что для получения hi-res вывода (300-600pdi) на бумаге вам нужно использовать правильные шрифты или векторную графику. Они визуализируются при требуемом разрешении и не будут пикселироваться, если вы их правильно используете. В противном случае используйте растровые изображения с правильным разрешением, поэтому, если у вас есть квадратное изображение размером 1200 пикселей, и вы хотите печатать на 600pdi, изображение не может быть больше 2 дюймов с каждой стороны.

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