我刚刚开始使用TCPDF(使用HTML输出),我不明白为什么我不能像下面那样为边框设置内联CSS样式,
style="border-right: 1px"
在查看了一些示例之后,我看到使用border =“1”属性的表上唯一可以看到边框的地方。这非常令人沮丧,我希望有一种方法可以使用所有内联CSS而不是像“border”这样的旧HTML属性。
感谢任何帮助,Metropolis
答案 0 :(得分:7)
由于版本5.7 TCPDF(http://www.tcpdf.org)包含对CSS边框的完全支持,因此您只需更新即可。无论如何,不要忘记正确设置边框。
例如:
border-right: 1px solid black;
答案 1 :(得分:3)
此答案已被弃用,因为当前版本的tcpdf似乎支持内置的css边界定义。如果您仍在使用旧的tcpdf并且无法切换,则仅使用此。强>
我也在最近的一个项目中使用了writeHtml函数,发现计算位置的绘图线对我来说不是一个真正的选择。所以我创建了一个小黑客来启用1px黑色边框到tr td div标签。
你需要对tcpdf类进行两处更改(或者在你自己的pdf类中覆盖继承自tcpdf的writeHtml函数):
所以请查看以下内容:
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标签的border属性即可。 例如。: - >将顶部和左边框1px实心黑色渲染到此表格单元格。
我知道这远不是有效的HTML:J但它为我节省了很多时间和麻烦。
还应该提到的是,由于缺乏utf-8支持,有一个很好的理由不去dompdf它会让你遇到更大的麻烦,特别是如果你从多语种数据库生成Pdf,我认为。 / p>
Tcpdf是我所知道的唯一一个没有任何问题处理utf-8的php库(如果我在这种情况下错了,请纠正我。)
答案 2 :(得分:2)
TCPDF 5.9.010(2010-10-27) - 增加了对表格的CSS属性'border-spacing'和'padding'的支持。 我写这篇文章的最新版本:TCPDF 5.9.034(2010-12-19)
答案 3 :(得分:1)
这种奇怪,但你可以使用Line方法自己绘制边框。
示例
$style = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0));
$this->Line(x1, y1, x2, y2, $style);
答案 4 :(得分:0)
不幸的是,TCPDF不支持FULL CSS希望有人能够快速解决这个问题,或者开发人员本身可以在下一个版本上兼容它。