Этот ответ устарел, так как текущие версии tcpdf, похоже, поддерживают встроенные определения границ css. Используйте это, только если вы все еще используете старый tcpdf и не можете переключиться.
Я также использую функцию writeHtml в недавнем проекте и обнаружил, что рисование линий в рассчитанных позициях не было для меня реальным вариантом. поэтому я создал небольшой хак, чтобы включить черные границы 1px для тегов tr td div.
вам нужно внести два изменения в класс tcpdf (или переопределить функцию writeHtml в вашем собственном классе pdf, наследующем от tcpdf):
Так что просто ищите следующее:
if (isset($dom[$key]['content'])) {
$cell_content = $dom[$key]['content'];
} else {
$cell_content = ' ';
}
после этого включают:
if (isset($dom[$key]['attribute']['border'])) {
$cell_borderHack = $dom[$key]['attribute']['border'];
} elseif (isset($dom[$trid]['attribute']['border'])) {
$cell_borderHack = $dom[$trid]['attribute']['border'];
} else {
$cell_borderHack = false;
}
а затем найти:
$this->MultiCell($cellw, $cellh, $cell_content, false, $lalign, false, 2, '', '', true, 0, true);
и замените его на:
$this->MultiCell($cellw, $cellh, $cell_content, $cell_borderHack, $lalign, false, 2, '', '', true, 0, true);
После внесения этих изменений становится возможным определить верхнюю левую и нижнюю границы, просто поместив комбинацию «TRBL» в атрибут границы вашего html-тега. например: -> отобразит верхнюю и левую границу 1px сплошным черным цветом в этой ячейке таблицы.
Я знаю, что это далеко не правильный HTML: J, но это сэкономило мне много времени и сил.
Следует также упомянуть, что есть очень веская причина не использовать dompdf из-за отсутствия поддержки utf-8, это доставит вам еще большие проблемы, особенно если вы создаете Pdf из многоязычной базы данных, что я предполагаю.
Tcpdf - единственная известная мне библиотека php, которая без проблем обрабатывает utf-8 (пожалуйста, поправьте меня, если я ошибаюсь в этом случае).
person
cioddi
schedule
01.07.2010