我使用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,但图像距页面的左边缘和上边缘有一定距离。
答案 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'
]);