小编And*_*tis的帖子

带有 FPDI 模板和 CSS 的 TCPDF

当 TCPDF 与 FPDI 模板一起使用时,在此过程中会丢失一些 CSS 支持。问题在于边框或背景颜色等内容,它们最终出现在 PDF 模板下方的图层中。TCPDF 用于SetLineStyle()将 CSS 边框/背景转换为 PDF,这似乎是问题所在。

例如:

$this->setSourceFile($filename); // /path/to/my/background.pdf
$imported_page = $this->ImportPage(1);
$this->useTemplate($imported_page);

...

$html = '<table style="border: 1px solid #000;"><tr><td style="background-color: #ff0000;">...</td></tr></table>';

$this->writeHTMLCell(45, 25, 160, 29, $html); 
Run Code Online (Sandbox Code Playgroud)

不渲染 CSS 边框。一旦useTemplate()删除,边界就在那里。使用 Illustrator 分析生成的 PDF 显示了一些有趣的事情:

PDF 图层useTemplate()- 从上到下:

  1. 表/内容层
  2. PDF模板图层 (群展)
  3. 边框和背景图层(路径)

PDF 图层没有useTemplate()- 从上到下:

  1. 表/内容层
  2. 边框和背景图层(路径)

在 Illustrator 中禁用包含 PDF 模板的图层组时,边框和背景变得可见。

不幸的是,我们没有找到一种方法将 PDF 模板图层组放在堆栈的底部,以便其他所有内容都呈现在其上方。我们能想到的唯一解决方法是将调用包装writeHTMLCell()startTemplate()/中endTemplate()并以printTemplate()

$this->setSourceFile($filename); …
Run Code Online (Sandbox Code Playgroud)

php pdf fpdi tcpdf

1
推荐指数
1
解决办法
3251
查看次数

标签 统计

fpdi ×1

pdf ×1

php ×1

tcpdf ×1