You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Adobe Acrobat Pro程序化实现PDF文件自动压缩?

程序化实现Adobe Acrobat Pro的PDF压缩自动化

我有一个约53MB的PDF文件,用Adobe Acrobat Pro手动操作可压缩至13MB,步骤如下:

  • 打开菜单
  • 选择「另存为其他」
  • 选择「减小文件大小的PDF」或「优化的PDF」

现在需要程序化实现这个压缩流程的自动化,此前用trustedFunction完成过其他任务,但无法将其用于该压缩工作流,尝试的代码中"com.adobe.acrobat.pdf-optimizer"不可用:

var TrustedCompressSave = app.trustedFunction(function(oDoc, cPath) {
  
    app.beginPriv();
    oDoc.saveAs({
  
        cPath: cPath,
  
        cConvID: "com.adobe.acrobat.pdf-optimizer"
  
    });
    app.endPriv();  
});

求一种只需提供PDF文件名就能生成压缩文件的程序化实现方式。


解决方案

1. 使用「减小文件大小」对应的正确转换器ID

你之前使用的com.adobe.acrobat.pdf-optimizer是PDF优化器的ID,但如果要对应手动操作里的「减小文件大小的PDF」,应该用com.adobe.acrobat.reducefilesize这个转换器ID,同时可以指定PDF兼容性版本来控制压缩程度。修改后的代码如下:

var TrustedCompressSave = app.trustedFunction(function(sourceDoc, outputPath, pdfCompat) {
    app.beginPriv();
    // 默认使用Acrobat DC兼容性,可指定为"11.0"、"10.0"等
    var compatibility = pdfCompat || "12.0";
    sourceDoc.saveAs({
        cPath: outputPath,
        cConvID: "com.adobe.acrobat.reducefilesize",
        oParams: {
            cPDFCompatibility: compatibility
        }
    });
    app.endPriv();
});

// 调用示例
var inputDoc = app.open("/Users/xxx/source.pdf");
TrustedCompressSave(inputDoc, "/Users/xxx/compressed.pdf");
inputDoc.closeDoc();

2. 调用PDF优化器的预设配置

如果需要和手动操作「优化的PDF」一致的精细压缩控制,可以加载Acrobat内置的优化预设(如"Standard"、"High Quality Print")或自定义预设,再执行保存:

var TrustedOptimizePDF = app.trustedFunction(function(sourceDoc, outputPath, presetName) {
    app.beginPriv();
    // 获取指定的优化预设,默认使用"Standard"
    var optimizePreset = app.pdfOptimizer.getPreset(presetName || "Standard");
    if (optimizePreset) {
        sourceDoc.saveAs({
            cPath: outputPath,
            cConvID: "com.adobe.acrobat.pdf-optimizer",
            oParams: {
                oPreset: optimizePreset
            }
        });
    } else {
        console.error("指定的优化预设不存在");
    }
    app.endPriv();
});

// 调用示例
var inputDoc = app.open("/Users/xxx/source.pdf");
TrustedOptimizePDF(inputDoc, "/Users/xxx/optimized.pdf", "Standard");
inputDoc.closeDoc();

注意事项

  • 确保使用的Adobe Acrobat Pro版本支持对应的JavaScript API,不同版本的参数或转换器ID可能略有差异
  • 脚本需要在Acrobat的JavaScript控制台执行,或通过「动作向导」创建自动化动作,文档级脚本无法直接调用特权函数
  • 自定义优化预设可以在Acrobat的「PDF优化器」中创建,调用时传入预设名称即可

内容的提问来源于stack exchange,提问作者Simant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 13:05:02