InDesign批量导出页面脚本报错求助(Error 24:exportFile不是函数)
Fix Error 24: "page1.pdf.exportFile is not a function" in InDesign Script
错误原因
触发Error 24是因为你调用了不存在的对象方法:InDesign的Page对象没有pdf属性,因此page1.pdf.exportFile这个调用完全无效。正确的做法是通过当前文档对象(app.activeDocument)调用exportFile方法,并在导出选项中指定要导出的页面范围。
修正后的完整脚本
以下脚本完全实现你的批量导出需求:
// 获取当前激活的InDesign文档 var doc = app.activeDocument; // 替换为你的实际导出路径(确保路径存在且有写入权限) var basePath = "/Users/yourname/exports/"; // -------------------------- // 页面1:最小文件大小PDF(72DPI) // -------------------------- var pdfMinOpts = new PDFExportOptions(); pdfMinOpts.pageRange = "1"; pdfMinOpts.pDFPreset = app.pdfPresets.item("最小文件大小"); doc.exportFile(ExportFormat.PDF_TYPE, new File(basePath + "page1_min_size.pdf"), false, pdfMinOpts); // -------------------------- // 页面2:高质量打印CMYK PDF(300DPI) // -------------------------- var pdfHighOpts = new PDFExportOptions(); pdfHighOpts.pageRange = "2"; pdfHighOpts.pDFPreset = app.pdfPresets.item("高质量打印"); // 强制设置CMYK色彩空间与300DPI(若预设未配置) pdfHighOpts.colorSpace = PDFColorSpace.CMYK; pdfHighOpts.resolution = 300; doc.exportFile(ExportFormat.PDF_TYPE, new File(basePath + "page2_high_print.pdf"), false, pdfHighOpts); // -------------------------- // 页面3-10:RGB JPG(72DPI) // -------------------------- var jpg72Opts = new JPEGExportOptions(); jpg72Opts.pageRange = "3-10"; jpg72Opts.colorSpace = JPEGColorSpace.RGB; jpg72Opts.resolution = 72; jpg72Opts.quality = 8; // 质量0-12,按需调整 doc.exportFile(ExportFormat.JPEG, new File(basePath + "pages3-10_rgb_72dpi.jpg"), false, jpg72Opts); // -------------------------- // 页面11:RGB PNG(72DPI) // -------------------------- var pngOpts = new PNGExportOptions(); pngOpts.pageRange = "11"; pngOpts.colorSpace = PNGColorSpace.RGB; pngOpts.resolution = 72; pngOpts.transparency = true; // 若无需透明,改为false doc.exportFile(ExportFormat.PNG, new File(basePath + "page11_rgb_72dpi.png"), false, pngOpts); // -------------------------- // 页面12-13:RGB JPG(300DPI) // -------------------------- var jpg300Opts = new JPEGExportOptions(); jpg300Opts.pageRange = "12-13"; jpg300Opts.colorSpace = JPEGColorSpace.RGB; jpg300Opts.resolution = 300; jpg300Opts.quality = 10; doc.exportFile(ExportFormat.JPEG, new File(basePath + "pages12-13_rgb_300dpi.jpg"), false, jpg300Opts); // -------------------------- // 页面14-17:RGB JPG(72DPI) // -------------------------- jpg72Opts.pageRange = "14-17"; doc.exportFile(ExportFormat.JPEG, new File(basePath + "pages14-17_rgb_72dpi.jpg"), false, jpg72Opts); // -------------------------- // 页面18:RGB JPG(300DPI) // -------------------------- jpg300Opts.pageRange = "18"; doc.exportFile(ExportFormat.JPEG, new File(basePath + "page18_rgb_300dpi.jpg"), false, jpg300Opts); // -------------------------- // 页面19-22:RGB JPG(72DPI) // -------------------------- jpg72Opts.pageRange = "19-22"; doc.exportFile(ExportFormat.JPEG, new File(basePath + "pages19-22_rgb_72dpi.jpg"), false, jpg72Opts);
注意事项
- 务必替换
basePath为你的实际导出路径,确保路径已创建且有写入权限 - 若使用英文版本InDesign,需将PDF预设名称改为对应英文:
"Smallest File Size"、"High Quality Print" - JPEG的
quality参数可按需调整(0为最低质量,12为最高质量) - PNG的
transparency属性根据页面是否包含透明元素设置,不需要透明则改为false
内容的提问来源于stack exchange,提问作者Property Collection
相关产品推荐
相关产品推荐

