Этот ответ устарел , поскольку в текущих версиях 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» в атрибут border вашего html-тега.
например.:
-> отобразит верхнюю и левую границу 1px сплошного черного в эту ячейку таблицы.
Я знаю, что это далеко от действительного HTML: J, но это сэкономило мне много времени и хлопот.
Следует также упомянуть, что есть очень веская причина не использовать dompdf из-за отсутствия поддержки utf-8, это доставит вам еще большие проблемы, особенно если вы генерируете Pdf из многоязычной базы данных, которую я предполагаю.
Tcpdf - единственная из известных мне библиотек php, которая обрабатывает utf-8 без проблем (пожалуйста, исправьте меня, если я ошибаюсь в этом случае).