如何在PHPWord中使边框不“细”以防止Adobe Reader中“增强细线”设置的行为

问题描述

首先,您必须了解流程:

 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是否可以在该详细级别上编辑矢量。