Масштабировать HTML пропорционально точно для формата PDF A4

Я использую PHP, Mysql, jQuery. У меня есть веб-страница, которая должна быть преобразована в формат A4 с высоким разрешением PDF: http://optisolbusiness.com/funeral_site/sample/index/id/255 .

Я преобразовал HTML в PDF, используя wkhtmltopdf , который отлично работает.

Вот сгенерированный PDF-файл http://optisolbusiness.com/Guru/Gurupdf/optisol.pdf . Но HTML не подходит точно к размеру PDF; В PDF есть пробелы вокруг HTML. Как масштабировать HTML, чтобы соответствовать размеру A4 PDF 100%? Важно, чтобы содержимое внутри размера текста (т. Е.), Ширины и высоты изображений, фоновых изображений также масштабировалось пропорционально.

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

Я сам не знаю wkhtmltopdf, но ваше тело уже имеет абсолютные размеры (в дюймах). Вероятно, это проблема. Ваше тело имеет максимальный размер, содержание также имеет абсолютный размер (из-за размеров пикселов фонового изображения).

Это не является хорошей отправной точкой для преобразований html-to-print, и PDF по существу печатает.

что делать (промежуточное)

  • удалить любые ограничения по размеру от тела
  • wkhtml … имеет переключатель под названием zoom , 1.5 должно быть подходящим значением для заполнения страницы
  • использовать размер страницы a4

что делать («правильный» путь)

  • удалить ограничения размера от тела
  • постройте границы фона (черные) с элементами html и стилем css
    • воздержитесь от определения правил «ширины» для них. Вам нужно будет только определить «ширину» один раз, а все остальные ширины должны быть установлены на «авто».
    • высоты будут неприятными, потому что divs только настолько высоки, насколько требуется их содержание. Но высота установки: 100% не учитывает размеры границ и полей.
  • что желтый крест может быть спроектирован в css тоже, или намного более высокое разрешение png / jpeg
  • Используйте только «реальные» размеры. Это означает, что вы не используете пиксели, используйте точки, дюймы или мм. Вы можете использовать значения%, но убедитесь, что они представляют собой% значений реальных измерений (это означает, что в какой-то момент родительский элемент имеет реальный размер)

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

Рассмотрите возможность поиска в FPDF , библиотеке писем с открытым исходным кодом PHP PDF. Будьте осторожны, сайт выглядит устаревшим, но функциональность работает красиво.

Вы можете установить размер тела на размер страницы .. в случае A4, который составляет 210×297 мм.

Btw: вы должны использовать ширину только в процентах, иначе wkhtmltopdf придется попробовать и преобразовать ее.

Поэтому убедитесь, что вы используете width: 100%; если вы хотите, чтобы он заполнил всю комнату. 😉

BTW: Если вам нужны реальные высококачественные PDF-файлы, вам нужно будет создать их в соответствии с по меньшей мере стандартом PDF / X-3 . Я не думаю, что wkhtmltopdf делает это.