#PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片
代码示例
代码如下(示例):
public function test()
{
//读取模板
$templateProcessor = new TemplateProcessor("upload/image/a.docx");
//创建图片
$url = $this->createImage();
//替换值 把字符串变量替换成图片
$templateProcessor->setImageValue('image', [
'path' => $url, //路径
'width' => '100px', //宽度
'height' => '100px', //高度
]);
//保存至新地址新名称
$templateProcessor->saveAs('upload/image/a1.docx');
//第二个添加图片
// $word =IOFactory::load(UrlServer::setFileUrl('upload/image/a1.docx'));
// $sec=$word->addSection();
// $sec->addImage(UrlServer::getFileUrl("upload/image/a.png"),null);
// $objWriter = IOFactory::createWriter($word);
//
// $objWriter->save((UrlServer::setFileUrl('upload/image/a11.docx')));
// $templateProcessor=new TemplateProcessor(UrlServer::getFileUrl("upload/image/a1.docx"));
// dump($templateProcessor);
}
/**
* 创建并合并图片
*
* @return void
*/
public function createImage()
{
//读取图片模板
$im = imagecreatefrompng('upload/image/b.png');
//设置图片属性
$base = [
'border' => 10, //图片外边框
'file_path' => 'upload/img/', //图片保存路径
'title_height' => 30, //报表名称高度
'title_font_size' => 16, //报表名称字体大小
'font_ulr' => '', //字体文件路径
'text_size' => 12, //正文字体大小
'row_hight' => 30, //每行数据行高
'filed_id_width' => 60, //序号列的宽度
'filed_name_width' => 120, //玩家名称的宽度
'filed_data_width' => 100, //
'table_header' => ['序号', '昵称', '数据1', '数据2', '数据3', '数据4', '数据5'], //表头文字
'column_text_offset_arr' => [45, 90, 55, 55, 55, 65, 65], //表头文字左偏移量
'row_text_offset_arr' => [50, 110, 90, 90, 90, 90, 90