PHPword setImageValue 设置高度不生效

phpword 版本 "phpoffice/phpword": "^0.18.3

我正在使用这个代码,使用模板,写入动态图片,但问题是图像的大小太小,我需要增加高度和宽度

模板文件 如下

问题写法:

php 复制代码
$file_name = "简历";
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('/tmp.docx');
$image_path = "/opt/1.jpg"
$templateProcessor->setImageValue('img1',$image_path);
$templateProcessor->saveAs('docx/'.$file_name.'.docx');

直接这样写,图片显示不正常,图片高度很低,怎么办呢?

如果版本是 "phpoffice/phpword": "^0.18.3 解决代码如下:

php 复制代码
$templateProcessor->setImageValue('img1', [
  'path' => $image_path,
  'width' => 600,
  'height' => 400,
]);

若还不行,则新加一个参数 ratio 为false 代码如下:

php 复制代码
$templateProcessor->setImageValue('img1', [
  'path' => $image_path,
  'width' => 600,
  'height' => 400,
  'align'=>'center',
  'ratio'=>false
]);

如果版本是 "phpoffice/phpword": "^1.1

vim composer.json

代码如下:

php 复制代码
<?php
require 'vendor/autoload.php';

$tmp=new \PhpOffice\PhpWord\TemplateProcessor('tmp.docx');//打开模板
$tmp->setValue('name','李四');//替换变量name
//$tmp->setValue('mobile','18888888888');//替换变量mobile
$a_arr = [
     'path'=>'/opt/phpword/1.jpg',
     'width'=>'300',
     'height'=>450
];
$tmp->setImageValue('img1',$a_arr);//替换变量mobile
$tmp->saveAs('简历.docx');//另存为

然后运行php index.php 得出简历.docx 如下图:

如果上诉你还不成功,请重新设置模板文件 有时候莫名其妙的样式,可能导致图片显示不正常也未可知!

相关推荐
码农君莫笑4 分钟前
《信管通低代码信息管理系统开发平台》Windows环境安装说明
服务器·数据库·windows·低代码·c#·bootstrap·.netcore
fnd_LN14 分钟前
Linux文件目录 --- mkdir命令,创建目录,多级目录,设置目录权限
linux·运维·服务器
网安-轩逸1 小时前
基于ISO 21434的汽车网络安全实践
web安全·汽车·php
IPdodo全球网络服务2 小时前
如何通过TikTok引流到私域流量池
运维·服务器·网络
开疆智能3 小时前
ModbusTCP转Profinet:工业通信的利器
linux·服务器·网络
彩虹糖_haha3 小时前
Linux高并发服务器开发 第六天(rwx 对于目录和文件的区别 gcc编译器 动态库静态库)
linux·运维·服务器
溟洵3 小时前
【C++】异步(并发)实现 线程池 ---附源码+实现步骤(future、async、promise、package_task、任务池原理和框架)
服务器·网络·c++·分布式·后端
breaksoftware5 小时前
Windows Subsystem for Linux——设置默认登录用户名
linux·运维·服务器
PyAIGCMaster6 小时前
ubuntu装P104
服务器·网络·ubuntu
云云3217 小时前
云手机服务器如何做到群控多台手机的?
服务器·线性代数·安全·智能手机·矩阵