首页 > 解决方案 > 如何在 PHPWord 中使边框不“细”以防止 Adob​​e 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::CS_BORDER);
$cell->addText('Text', self::FS_CALIBRI_10_BOLD, self::PS_CENTER_ALIGN_NO_SPACE);
$cell = $row->addCell(Font::centimeterSizeToTwips(2.4), self::CS_BORDER);
$cell->addText('Text', self::FS_CALIBRI_10_BOLD, self::PS_CENTER_ALIGN_NO_SPACE);

然后我使用 Microsoft Word 手动将 .docx 导出为 .pdf 并使用 Adob​​e Reader 打开它。

像很多人一样,由于 Adob​​e Reader 中的“增强细线”设置,我遇到了渲染问题。

关键是:即使我使用以下代码,也优化了行:

private const CS_BORDER = 
[
    'borderSize' => 50, 
    'borderColor' => '000000',
];

我的问题是:在 PHPWord 中是否有什么可以让 Adob​​e Reader 不将边框视为细线?

标签: phpms-wordphpwordadobe-reader

解决方案


根据我的经验,防止 Acrobat 或 Reader 过度加粗矩形的方法是在形状的所有直线上插入额外的锚点。我在 Adob​​e Illustrator 中执行此操作,然后导出到 EMF 以在 Word 中使用。您将不得不调查 phpword 是否可以在该详细级别上编辑向量。


推荐阅读