OpenTBS 1.10.7块区域内changepic的adjust参数失效问题求助
在OpenTBS 1.10.7块循环中实现带尺寸调整的批量图片添加
针对你遇到的块内adjust参数失效问题,核心是要确保块循环标签与图片替换标签正确绑定,同时遵循OpenTBS的标签嵌套规则,以下是具体解决方案:
模板设置(Word/ODT)
- 插入一张占位图片作为循环图片的基础模板,初始尺寸不影响后续调整。
- 双击占位图片进入编辑状态,在图片内部插入块开始标签:
[img_loop;block=begin] - 同样在该占位图片内部,插入带尺寸调整的图片替换标签(注意前缀与块标签一致):
[img_loop.src;ope=changepic;tagpos=inside;adjust=120x90]adjust参数可按需设置:120x90:固定宽120px、高90px120:固定宽度120px,高度按比例自适应x90:固定高度90px,宽度按比例自适应50%:按原图片尺寸的50%缩放
- 在占位图片外部(紧随图片之后)插入块结束标签:
[img_loop;block=end]
PHP代码实现
require_once('tbs_class.php'); require_once('opentbs.php'); $TBS = new clsTinyButStrong; $TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); // 加载模板文件 $TBS->LoadTemplate('template.docx', OPENTBS_ALREADY_UTF8); // 准备循环数据,每个元素包含图片路径 $image_data = [ ['src' => 'images/pic1.jpg'], ['src' => 'images/pic2.jpg'], ['src' => 'images/pic3.jpg'] ]; // 合并块循环 $TBS->MergeBlock('img_loop', $image_data); // 输出生成的文档 $TBS->Show(OPENTBS_DOWNLOAD, 'output.docx');
关键注意事项
- 块标签与图片替换标签必须使用相同的前缀(如示例中的
img_loop),确保OpenTBS将图片替换与块循环关联。 - 占位图片需为Word/ODT原生支持的格式(JPG、PNG等),避免特殊格式导致替换失败。
- 若仍有问题,可开启调试模式排查细节:
调试信息会显示替换过程中的错误或警告,帮助定位问题。$TBS->Plugin(TBS_INSTALL, OPENTBS_DEBUG);
内容的提问来源于stack exchange,提问作者Darryl
相关产品推荐
相关产品推荐

