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 如下图:

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

相关推荐
一技安身1 小时前
【信创】docker-26.0.2.tgz 原理 + 完整安装
linux·运维·服务器
DevUp1 小时前
部署与运维:选完怎么把站跑起来?(番外六)
php·cms
TechLee2 小时前
一行代码防水平越权:用 PHP-Casbin 终结业务里的数据级 if-else
后端·php
郝学胜-神的一滴2 小时前
Effective Python 条款 13:善用星号解包,告别下标切片拆分的坑
服务器·开发语言·数据结构·python·程序人生·pycharm
智购无人售货机厂家2 小时前
2026自动售货机品类拓展逻辑:从饮料零食到鲜食药品文创的工程实践~YH
服务器·人工智能·单片机·线性代数·矩阵
catchadmin2 小时前
PHP Trait 为何可能成为语言的关键特性
php
国际云,接待3 小时前
华为云 ECS 怎么选规格:从用户地域、CPU/内存比、PPS 和云硬盘性能做购买前容量判断
服务器
国际云,接待3 小时前
华为云 CBR 备份不是点一下就完事:用恢复演练验证 ECS 的 RPO、RTO 和跨区域容灾
服务器
学烹饪的小胡桃3 小时前
资产设备管理系统 WGFIX 怎么设置https访问
linux·运维·服务器·网络·安全
JaguarJack3 小时前
Whim 是什么?一门把 PHP 被否决的设想真跑起来的实验语言
后端·php·服务端