phpdocx 添加图像使 docx 损坏

phpdocx add image makes docx corrupt

几年前有人问过,但没有答案corrupt docx when adding image

我有一个模板,我在其中替换了一些变量并生成了一个 docx 文档...效果很好..

我一添加图像,Word 就告诉我文件已损坏。但是让 Word 更正错误会给我文档,因为我希望它与图像一起出现。

我正在添加这样的图片...

$docx->addBreak(array('type' => 'page'));
            $options = array(
            'src' => $value['110333870356bc784cf1b6b0.56722572.png'],
            'imageAlign' => 'center',
            'scaling' => 100,
            'spacingTop' => 10,
            'spacingBottom' => 0,
            'spacingLeft' => 0,
            'spacingRight' => 20,
            'textWrap' => 0,

            );
            $docx->addImage($options); 

我迷路了..? ..

在与 2mdc(phpDocX 的创建者)联系后,他们告诉我,由于我插入的图像的文件名,PHP 无法获得正确的扩展名。结果 phpDocX 添加了一些错误的值(例如 dpi 和图像扩展名)。

如我的问题所述,Word 能够检测到这些错误并进行更正。

更改了创建我的 "unique" 图像名称的例程,以确保不存在点并解决了问题..

因此,文件名:110333870356bc784cf1b6b0.56722572.png 将改为 110333870356bc784cf1b6b0656722572.png(或其他生成的文件名)。

只是为了分享我的经验。 我有完全相同的问题,但不是出于相同的原因。 这是因为我要插入的图像文件扩展名(addImage)是大写字母。 示例:

  • image.JPG ==> 结果为 "corrupt" 文件。
  • image.jpg ==> 结果正常!

希望对大家有所帮助...