对于一个项目,我需要自动创建名片。现在,他们为每个名片模板都有一个InDesign文件。他们在indesign文件中插入了人物的信息,然后生成它的pdf。
现在,在Web应用程序中输入客户信息没有问题,但是如何生成pdf以及如何在运行时更改indesign文件?
我认为以编程方式无法更改indesign文件?
我可以使用其中的一个卡片模板从indesign生成pdf。在运行时,我会以pdf x次数复制该卡。然后我需要注入人的信息(姓名,地址,......)?
这里有什么可能?
最终的pdf由自动创建名片,削减名片的机器使用......
答案 0 :(得分:4)
您可以使用InDesign中的内置脚本支持自动执行任何操作。在InDesign GUI中,您可以将脚本标签分配给InDesign文档中的各种元素,例如文本框架。例如,如果您想要替换文本框架中的某些文本,则可以在Javascript中应用类似的内容(CS4及以下版本,请参阅下面的注释):
var document = app.open(File("path to your InDesign file"), false);
var textFrame = document.pageItems.item("your script label");
var story = textFrame.parentStory;
story.contents = "your new content"
要创建PDF,您可以执行以下操作:
var pdfFile = new File("path to your pdf");
document.exportFile(ExportFormat.PDF_TYPE, pdfFile);
这只是你可以做的几个例子,我希望这有点帮助。 如果您不知道如何在InDesign中安装和运行脚本,this blog post会解释该过程。您可以找到一个很好的在线脚本参考here。 据我了解,您希望将脚本作为批处理过程运行。如果是这种情况,我建议您查看InDesign Server。它基本上是InDesign的桌面版本,但没有GUI和简单的Web服务接口。它也作为Windows服务(或其他平台上的等效服务)运行。
注意:从CS5开始,您无法再通过其脚本标签识别文本框架,如上所示。 There's some discussion about it here。最好的选择是使用itemByName(name)而不是item,name是图层调色板上的名称。通过对图层调色板中的项目执行really slow double click,可以在GUI中更改此设置。或者,this workaround将每个文本框的名称设置为等于其脚本标签。然后,您需要做的就是更改文本框架的内容:
document.textFrames.itemByName("shmullus").contents = "The Doctor";