scripting - Adobe InDesign 脚本仅影响选定的表格/文本框架
问题描述
我是脚本新手,在下面复制了这个,效果很好,但文档中并非所有表格都相同,我只想影响选定的表格/文本框架。有没有一种简单的方法可以让这段代码按照我想要的方式工作。
var myDoc = app.activeDocument;
var myWidths = [.5,.35,.44,.44];
for(var T=0; T < myDoc.textFrames.length; T++){
for(var i=0; i < myDoc.textFrames[T].tables.length; i++){
for(var j=0; j < myWidths.length; j++){
myDoc.textFrames[T].tables[i].columns[j].width = myWidths[j];
}
}
}
感谢您的帮助,刚刚开始深入研究 InDesign 脚本并理解它。
解决方案
是的,它可以很容易地完成:
var myWidths = [.5,.35,.44,.44];
var sel = app.selection;
if (sel.length != 1) exit();
var frame = sel[0];
if (frame.constructor.name != 'TextFrame') exit();
for (var i = 0; i < frame.tables.length; i++) {
for (var j = 0; j < myWidths.length; j++) {
frame.tables[i].columns[j].width = myWidths[j];
}
}
它适用于一个选定的文本框架。
如果您需要处理几个选定的帧,这里是代码的另一个变体:
var myWidths = [.5,.35,.44,.44];
var frames = app.selection
var f = frames.length
while(f--) {
if (frames[f].constructor.name != 'TextFrame') continue;
var tables = frames[f].tables;
var t = tables.length;
while(t--) {
var table = tables[t];
var c = table.columns.length;
while(c--) {
table.columns[c].width = myWidths[c];
}
}
}
推荐阅读
- python - 根据定义的属性对变量列表进行分类
- mongodb - 在大型 mongodb 集合中搜索字符串(540GB / 40 亿个文档)
- routes - 配置 iptables 以路由到本地网络和互联网
- authentication - 基于 Blazor 身份验证角色
- android - 为 android studio 安装 Material Design 时出错
- python - 如何在 Django 的多对多中执行正确的反向查询
- c# - ZipArchive,更新条目:读-截断-写
- wso2 - WSO2 Integrator:HTTP 状态 401 - 如何获取错误正文?
- linux - make gcc 期间出错:“cp: Permission denied”
- arrays - 如何从 TypeScript 中的非重复值中过滤对象?