TCPDF – добавление фона в ячейку таблицы или div, которая отображается в PDF-файле

Я использую TCPDF для создания PDF-файлов «на лету» на моем веб-сайте.

Все это хорошо работает, и поэтому я не хочу менять и использовать что-то еще.

Но моя проблема, которую я имею сейчас, заключается в том, что мне нужно включить изображение в файл PDF, который будет иметь неизвестный размер, размеры, соотношение сторон и т. Д.

Моим решением для добавления этого было добавить его в качестве фона в ячейку таблицы или в div и использовать свойство «cover» для добавления изображения.

Это отлично работает в HTML и выглядит так, как я хочу.

Но добавление его в файл PDF приводит к пустой ячейке или пустой div, и никакой фон не добавляется.

Я пробовал использовать оба метода:

$html .= "<div align=\"center\">\n"; $html .= "<table cellpadding=\"0\" cellspacing=\"0\" style=\"width:200px; height:200px; border:2px solid black;\">\n"; $html .= "<tr><td style=\"width:200px; height:200px; background: url(model.jpg) 50% 0 no-repeat; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;\"></td></tr>\n"; $html .= "</table>\n"; $html .= "</div>\n"; $html .= "<div align=\"center\">\n"; $html .= "<div style=\"width:200px; height:200px; border:2px solid black; background: url(model.jpg) 50% 0 no-repeat; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;\"></div>\n"; $html .= "</div>\n"; 

Оба они показывают сплошную границу, но нет фона.

На сайте TCPDF есть один пример добавления фонов, но он добавляет фон, который охватывает всю страницу, чего я не хочу.

Может ли кто-нибудь помочь мне получить эти фоновые изображения в созданном PDF-файле или предложить альтернативный способ добавления изображения в документ, который должен быть фиксированным размером на странице, но где исходное изображение неизвестных размеров и аспекта соотношение?

TCPDF имеет очень ограниченную поддержку CSS. Он не поддерживает все атрибуты.

В настоящее время поддерживаются только следующие атрибуты CSS:

  • семейство шрифтов
  • начертание шрифта
  • стиль шрифта
  • цвет
  • фоновый цвет
  • текст-отделка
  • ширина
  • высота
  • выравнивания текста

Итак, насколько я могу понять, что вы пытаетесь добиться того, что вы являетесь типичным для достижения, невозможно, и вы не можете добавить фон, если вы не используете этот пример фона TCPDF, который вы не хотите использовать;

Таким образом, альтернативы TCPDF, которые, безусловно, стоит попробовать: domPDF

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

Как мне удалось сделать это, в конце концов, это сделать два раза.

Во-первых, я использовал PHP для изменения размера и обрезания изображения до правильного соотношения сторон для PDF.

Затем, во-вторых, я использовал TCPDF для добавления изображения в качестве стандартного, а не как фоновое изображение.

Теперь все работает отлично и выглядит так, как я этого хочу.