实际上测试opentbs以根据我网站上的模板生成docx。我正面临着整合图像的问题。 我成功地在循环中添加了图像,但我的问题是将它们集成在嵌套循环中。
我有一个天数对象,在这里有一个图像路径数组(每天有额外的数据)
我的数据架构是这样的:
// Initialisation du Parser
$TBS = new clsTinyButStrong;
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);
// Chargement du fichier Modèle
$TBS->LoadTemplate(realpath(dirname(__FILE__)).'/tbs/rendu-v2.docx', OPENTBS_ALREADY_UTF8);
$steps = array(
stdClass {
day: 'day 1',
name: 'My 1st step',
images: array(
'pathToMyFirstImage',
'pathToMySecondImage'
)
},
stdClass {
day: 'day 2 & 3',
name: 'My 2st step',
images: [
'pathToMyThirdImage',
'pathToMyFourthImage'
]
}
);
$TBS->MergeBlock( 'steps2', $steps);
$TBS->Show(OPENTBS_DOWNLOAD);
在我的单词模板中:
[steps2;block=begin]
JOUR [steps2.day;sub1=images] : [steps2.name]
[steps2.date]
[steps2.description]
[steps2_sub1; block=begin]
[X] (picture with [steps2_sub1.val;ope=changepic;tagpos=inside] as text sustitution)
[steps2_sub1; block=end]
[steps2; block=end]```
实际上,在输出文件中,我的子块显示为此而不是解释。
我查看了这个解决方案OpenTBS - How to use a double loop,但是结尾部分有点奇怪,只有[steps2_sub1;block=end]
无效。
OpenTBS doc没有提供带有块的子块的完整示例。
有人看到我误解的内容吗?
编辑:我的子块不起作用,显示为“代码”而不解释。
谢谢,
马修
答案 0 :(得分:0)
我可以在你的代码段中看到2个错误。
1)TBS区分大小写。
所以片段:
[STEPS2.DAY;SUB1=IMAGES]
应替换为:
[steps2.day;sub1=images]
2)参数'sub1'是块参数,因此只应在具有参数'block'的字段中定义。否则会被忽略。
所以片段:
[steps2;block=begin]
[steps2.day;sub1=images]
应替换为:
[steps2;block=begin;sub1=images]
[steps2.day]
答案 1 :(得分:0)
似乎TBS对空间敏感:我的开始块中的sub1分号前面有一个空格(MS Word在FR语言中自动添加它)。
下一步是工作代码:
[steps2;block=begin;sub1=images]
[STEPS2.DAY] : [STEPS2.NAME]
[steps2.date]
[steps2.description;strconv=no]
[X] <- Image with "[steps2_sub1.val;ope=changepic;tagpos=inside;block=tbs:p]" as Text Replacement
[steps2;block=end]
全部谢谢
顺便说一句,如何管理各种显示图片的方式? 我将有0到4张图片显示如下:
| My Page |
| |
| Case 1 image |
[ 100% Width ]
| |
| Case 2 images |
[ 50% ][ 50% ]
| |
| Case 3 images |
[ 50% ][ 50% ]
[ 100% ]
| |
| Case 4 images |
[ 50% ][ 50% ]
[ 50% ][ 50% ]
有可能实现这样的目标吗?