我正在创建一个小脚本,以便在InDesign中使用,以便能够读取.txt文件并创建不同WXH和Bleed等的多个.indd文件.这是一个Java脚本.js文件.
到目前为止,我设法让一个脚本完全工作,但当我try 使用Scrip UI功能来美化它时,它似乎就是死了.没有错误或崩溃,只是什么都没有.
以下是有问题的代码.工作版本基本相同,但运行时没有UI功能.如果有人能告诉我我哪里出了问题,我将不胜感激.我已经上上下下编写了100次这个代码,但都无法生成文件.
万一它能帮上忙: 这样做的目的是能够从客户端接收Electron 表格,并为工作室提供一组预先设置好的InDesign文件.因此,需要使用出血设置和网络版本.
我已经花了几周的时间学习任何类型的编码,因为我来自印前艺术工作背景.因此,无论是否有与查询相关的建议,我们都非常感谢.
var dialog = new Window("dialog");
dialog.text = "Doc Builder";
dialog.orientation = "column";
dialog.alignChildren = ["left","top"];
dialog.spacing = 10;
dialog.margins = 16;
// TXTPANEL
// ========
var txtPanel = dialog.add("panel", undefined, undefined, {name: "txtPanel"});
txtPanel.orientation = "row";
txtPanel.alignChildren = ["left","top"];
txtPanel.spacing = 0;
txtPanel.margins = 10;
var txtCopy = txtPanel.add("statictext", undefined, undefined, {name: "txtCopy"});
txtCopy.text = "Select your txt file:";
txtCopy.preferredSize.width = 200;
var txtButton = txtPanel.add("button", undefined, undefined, {name: "txtButton"});
txtButton.text = "Select";
txtButton.onClick = function () {var file = File.openDialog("Select Your Text File (Must be a .txt format)", undefined, false);}
// FOLDERPANEL
// ===========
var folderPanel = dialog.add("panel", undefined, undefined, {name: "folderPanel"});
folderPanel.orientation = "row";
folderPanel.alignChildren = ["left","top"];
folderPanel.spacing = 0;
folderPanel.margins = 10;
var folderCopy = folderPanel.add("statictext", undefined, undefined, {name: "folderCopy"});
folderCopy.text = "Select a folder destination";
folderCopy.preferredSize.width = 200;
var folderButton = folderPanel.add("button", undefined, undefined, {name: "folderButton"});
folderButton.text = "Select";
folderButton.onClick = function () {var folder = Folder.selectDialog("Select the folder where the new documents should be saved");}
// COLOURSPACEPANEL
// ================
var colourSpacePanel = dialog.add("panel", undefined, undefined, {name: "colourSpacePanel"});
colourSpacePanel.text = "Colour Space";
colourSpacePanel.preferredSize.height = 80;
colourSpacePanel.orientation = "row";
colourSpacePanel.alignChildren = ["left","center"];
colourSpacePanel.spacing = 50;
colourSpacePanel.margins = 10;
var printButton = colourSpacePanel.add("radiobutton", undefined, undefined, {name: "printButton"});
printButton.text = "Print";
printButton.value = true;
var webButton = colourSpacePanel.add("radiobutton", undefined, undefined, {name: "webButton"});
webButton.text = "Web";
// BLEEDPANEL
// ==========
var bleedPanel = dialog.add("panel", undefined, undefined, {name: "bleedPanel"});
bleedPanel.text = "Document Bleed";
bleedPanel.orientation = "column";
bleedPanel.alignChildren = ["left","top"];
bleedPanel.spacing = 0;
bleedPanel.margins = 10;
var bleedCopy = bleedPanel.add('edittext {properties: {name: "bleedCopy"}}');
bleedCopy.text = "3mm";
// ENDPANEL
// ========
var endPanel = dialog.add("group", undefined, {name: "endPanel"});
endPanel.orientation = "row";
endPanel.alignChildren = ["left","bottom"];
endPanel.spacing = 20;
endPanel.margins = 0;
var buildButton = endPanel.add("button", undefined, undefined, {name: "buildButton"});
buildButton.text = "Build";
var cancelButton = endPanel.add("button", undefined, undefined, {name: "cancelButton"});
cancelButton.text = "Cancel";
buildButton.onClick = function ()
{
file.open("r");
var content = file.read().split("\n");
for (var i = 0; i < content.length; i++)
{
var curLine = content[i].split("\t");
var width = curLine[0];
var height = curLine[1];
var filename = curLine[2];
docName = filename + "_" + height + "x" + width;
try {
var newDoc = app.documents.add(false);
newDoc.documentPreferences.pageHeight = height;
newDoc.documentPreferences.pageWidth = width;
newDoc.documentPreferences.facingPages = false;
newDoc.documentPreferences.properties =
{
documentBleedUniformSize : true,
documentBleedTopOffset : docBleed
};
newDoc.save(new File(folder + "/" + docName + "mm.indd"));
newDoc.close(SaveOptions.no)
} catch(myError){}
}
}
dialog.show();
已try 各种修复: 将onClick更改为onMousedown 调整某些动作的顺序
该脚本将显示在InDesign的"脚本"面板中. 一旦双击,我希望弹出一个窗口,所有的参数都被分配. 然后,一旦用户点击"构建"
它会将所有文档生成到选定的目标文件夹中.
如果您想try 运行实时数据,则需要创建一个3列的.txt文件(我从Excel中导出): A栏:宽度, B栏:高度, C栏:文件名.