【问题标题】:phpWord - Cannot add PreserveText in SectionphpWord - 无法在部分中添加 PreserveText
【发布时间】:2015-10-11 21:44:20
【问题描述】:

对phpWord没有太多经验,遇到以下错误:

致命错误:未捕获的异常“BadMethodCallException”带有消息“无法在部分中添加 PreserveText。”

使用以下行时会发生这种情况:

$phpWord = \PhpOffice\PhpWord\IOFactory::load($document_location . $document_name . '.docx'); 

文档确实存在,我也可以保存文档和读取文件。

任何见解将不胜感激。

【问题讨论】:

    标签: php phpword


    【解决方案1】:

    我遇到了同样的问题(也问过here),对我来说,在我从中删除所有mail merge fields 后加载文档就可以了。也许这也适合你

    【讨论】:

    • 完美!感谢您的帮助。为了以后的通知,任何有类似查询的人我突出显示了 word 文档中的所有内容,并按下了以下按钮组合以删除文档中的所有邮件合并链接:ctrl + shift + F9
    • 不是真正的修复,有同样的问题,但需要合并字段来可靠地执行文本替换
    【解决方案2】:

    对于在部分中使用保留文本添加到文件中的方法checkValidity() PhpOffice/PhpWord/Element/AbstractContainer.php 新规则。

    例如:

    在第 214 行:'PreserveText' => array('Header', 'Footer', 'Cell')Section 添加到数组

    在第 224 行:'PreserveText' => array(array('Cell'), array('Header', 'Footer')) 也为子容器添加 Section

    现在,你应该写

    $section->addPreserveText("Total {PAGE} pages.");
    

    【讨论】:

      猜你喜欢
      • 2020-05-18
      • 2015-04-20
      • 2014-01-02
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多