我需要通过观察XML文件的更改,下载XML中引用的所有远程图像(因为InDesign无法使用远程图像),在InDesign中自动创建PDF,将XML转换为引用下载的本地图像路径,加载InDesign模板,然后执行XML合并并将结果导出为PDF。
我目前正在侦听XML文件的更改并使用PowerShell启动InDesign,但我仍然坚持如何获取所需的图像。
我想的不是尝试读取XML而只是下拉引用的图像,我只能下载整个图像目录。我已经考虑过使用 FtpWebRequest 类通过PowerShell执行此操作,但批处理和.NET脚本不是我的强项,我只能找到下载单个文件的示例,或者列表基于CSV清单的文件。
我是一名JS开发人员,所以我使用像gulp这样的任务运行器和ftp模块来研究Node.js实现,但我不确定这是一个很好的解决方案,还是它甚至可以做到我想要的是什么。
如果必须在Windows计算机上执行此操作,那么您的工作流程是什么?
答案 0 :(得分:0)
我的解决方案是使用node.js和gulp创建一个侦听目录的构建环境(使用gulp-watch),并在检测到XML文件更改时启动构建:
gulp.task('watchXml', function() {
watch('input/*.xml', batch(function (events, done) {
gulp.start('build', done);
}));
});
我使用npm 请求模块通过HTTP(而不是FTP)下载图像,并使用 fs 模块将它们传输到本地文件系统。下载和XSLT完成后,我可以运行shell命令以使用child_process
启动InDesign:
var exec = require('child_process').exec;
gulp.task('shell', function(done) {
exec('start "" "C:\\Program Files\\Adobe\\Adobe InDesign CC 2015\\InDesign.exe"', function(err, stdout, stderr) {
if (err) {
done();
return console.log('error:', err);
}
console.log('InDesign launched.');
done();
});
});
从那里,InDesign启动脚本接管,导入XML并创建PDF。