【问题标题】:PHPWORD - Insert image in front of text on every page of a docx filePHPWORD - 在 docx 文件的每一页上的文本前面插入图像
【发布时间】:2023-03-24 12:50:01
【问题描述】:

使用 PhpWord 库,请告诉我是否可以在创建新 docx 文件时在文本前面和每一页上的相同位置插入图像。

【问题讨论】:

  • 如果您想在每个页面的页面顶部插入图像,您可以使用全局标题轻松实现 - 我怀疑有任何方法(至少我没有想到)如果你想在文本前面插入图像(与文本内联)。
  • 为了更清楚:我有一个文档,只有一个部分,包含一个可以占用一页或多页的表格,我想在每一页上放一个图章/图像,在同一个地方,在表格的文字前面。 ejuhjav,谢谢你的想法。我试过了,从两步构建最终的 docx:一步构建带有假标题的文档,第二步加载文档并在标题中附加正确的图章,但对我来说没有好的结果。这是你提出的方案?可以更具体一些,或许可以给出一段代码?谢谢。

标签: php docx phpword


【解决方案1】:

您可以使用实现此功能的开发版本:

看看这个问题:https://github.com/PHPOffice/PHPWord/issues/939

这个拉取请求实现了这个:https://github.com/PHPOffice/PHPWord/pull/1084

【讨论】:

  • 你的想法是基于模板的,但是我的docx文件是从零开始创建的,没有使用模板。在这些情况下这是否可以解决 m 问题?谢谢。
【解决方案2】:

这里有一个简单的例子来说明我使用全局标题在每个页面的顶部放置图像的意思(单个部分包含一个长表):

$phpWord = new \PhpOffice\PhpWord\PhpWord();

$section = $phpWord->addSection();

$header = $section->addHeader();
$header->addImage('resources/PhpWord.png', array('width' => 80, 'height' => 80, 'alignment' => \PhpOffice\PhpWord\SimpleType\Jc::START));

// generate long table just for demo that spans over multiple pages
$table = $section->addTable();
for ($i = 0; $i < 200; $i++) {
    $table->addRow();
    $table->addCell(4500)->addText('dummy');
    $table->addCell(4500)->addText("contents $i");
}

【讨论】:

  • 我已经尝试在标题中使用文本,实际上,文本已更改。但是,当我在标题中使用图像,然后,我尝试替换图像时,图像被替换,但不再在文本前面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多