问题描述
首先,您必须了解流程:
PHPWord -> document.docx -> Microsoft Word -> document.pdf -> Adobe Reader
我使用PHPWord在.docx文档中创建一些表:
private const CS_BORDER =
[
'borderSize' => 7,'borderColor' => '000000',];
$table = $section->addTable();
$row = $table->addRow();
$cell = $row->addCell(Font::centimeterSizetoTwips(5.3),self::CS_BORDER);
$cell->addText('Text',self::FS_CALIBRI_10_BOLD,self::PS_CENTER_ALIGN_NO_SPACE);
$cell = $row->addCell(Font::centimeterSizetoTwips(2.2),self::PS_CENTER_ALIGN_NO_SPACE);
$cell = $row->addCell(Font::centimeterSizetoTwips(2.4),self::PS_CENTER_ALIGN_NO_SPACE);
然后,我使用Microsoft Word手动将.docx导出为.pdf,并使用Adobe Reader打开。
与很多人一样,由于Adobe Reader中的“增强细线”设置,我出现了渲染问题。
要点是:即使我使用以下代码,行也会被优化:
private const CS_BORDER =
[
'borderSize' => 50,];
我的问题是:PHPWord中是否需要做一些事情,以使Adobe Reader不会将边框视为细线?
解决方法
以我的经验,防止Acrobat或Reader过度加粗矩形的方法是在形状的所有直线上插入其他锚点。我在Adobe Illustrator中执行此操作,然后导出到EMF以在Word中使用。您必须调查phpword是否可以在该详细级别上编辑矢量。