You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHPWord生成PDF时表格单元格无边框设置失效问题求助

PHPWord表格TCPDF转PDF时无边框单元格显示异常问题

问题描述

使用PHPWord创建表格时,给单元格1设置了黑色边框,单元格2设置为无边框,生成的docx文件显示正常(单元格1有边框、单元格2无框),但通过TCPDF渲染器生成PDF时,所有单元格都显示边框。

相关代码

<?php
include_once '../vendor/autoload.php';
$phpWord = new \PhpOffice\PhpWord\PhpWord();
use PhpOffice\PhpWord\Element\Table;
use PhpOffice\PhpWord\TemplateProcessor;
use PhpOffice\PhpWord\ComplexType\TblWidth;
use PhpOffice\PhpWord\Settings;
use PhpOffice\PhpWord\SimpleType\Border;

$styleCell1 = array('borderColor' =>'black', 'borderSize' => 6);
$styleCell2 = array('borderColor' =>'black', 'borderSize' => 0,'borderStyle' => Border::NONE);

$section = $phpWord->addSection();
$table = $section->addTable('testing');

$table->addRow();
$table->addCell(700,$styleCell1)->addText('cell 1');
$table->addCell(500,$styleCell2)->addText('cell 2');

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('1411_testingTable.docx');

Settings::setPdfRendererPath('../vendor/tecnickcom/tcpdf');
Settings::setPdfRendererName(Settings::PDF_RENDERER_TCPDF);
$phpWord->save('1411_testingTable.pdf','PDF'); 

效果对比

  • docx输出:单元格1显示黑色边框,单元格2无任何边框
  • PDF输出:两个单元格均显示黑色边框

解决方案

TCPDF对PHPWord的全局borderStyle参数解析存在兼容问题,需单独设置单元格四个方向的边框样式,而非使用全局配置。修改后的单元格2样式代码如下:

$styleCell2 = [
    'topBorderStyle' => Border::NONE,
    'bottomBorderStyle' => Border::NONE,
    'leftBorderStyle' => Border::NONE,
    'rightBorderStyle' => Border::NONE,
    'borderSize' => 0,
];

替换原代码中的$styleCell2定义后,TCPDF生成的PDF将正确渲染无边框的单元格。

若此方法仍不生效,可尝试更换PDF渲染器(如DomPDF),部分渲染器对PHPWord样式的支持更完善。

内容的提问来源于stack exchange,提问作者Premlatha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:38:23