PHPWord生成的具有0边距的docx水印图像从文档的左边缘和上边缘偏移了一些空间

时间:2018-08-14 16:03:20

标签: watermark phpword

我使用PHPWord生成docx文档,并希望将图像作为背景。水印完全是重点。 一切都可以很好地生成文档,例如节,段落,字体样式和大小,行高等。 但是我坚持了这一部分:我的背景图像(页边距为0)总是从文档边缘移开一定距离。

我使用以下代码:

$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();

$header = $section->addHeader();
$header->addWatermark($path . '/images/test.jpg', 
  array(
    'marginTop' => 0, 
    'marginLeft'=> 0,
  )
);

$section->addText('Is Richard Deckard a replicant?');

$timestamp = date('Hi-ymd');
$filename = 'DOC_' . $timestamp;
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save($path . '/docs/' . $filename . '.docx');  

结果是: PHPWord watermark image for background

因此,如您所见,页边距不为0,但图像距页面的左边缘和上边缘有一定距离。

2 个答案:

答案 0 :(得分:1)

我能够这样将背景图片定位到左上边缘

$header = $section->addHeader();
$header->addWatermark('images/test.png', 
  array(
    'width' => 596, 
    'marginTop' => -36,
    'marginLeft' => -50,
    'posHorizontal' => 'absolute',
    'posVertical' => 'absolute',
  ));

我认为这是绝对参数。 我需要在页边空白处设置负值,因为我的身体部位具有内部页边空白。

答案 1 :(得分:0)

我遇到了同样的问题,所幸我发现了这个问题以及@vorvor的答案。感谢您的答复@vorvor。

我在Laravel 5.6项目中做了同样的事情,只是想与您共享我的代码。

$header = $section->addHeader();
$bg_image = Storage::url('itinerary-assets/Untitled-1_compressed.jpg');
$header->addWatermark($bg_image, [
    'marginTop' => -36,
    'marginLeft' => -50,
    'posHorizontal' => 'absolute',
    'posVertical' => 'absolute'
]);