You need to enable JavaScript to run this app. 如何使用ghostscript命令压缩非当前目录的PDF并输出到指定目录?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ghostscript命令压缩非当前目录的PDF并输出到指定目录?

GhostScript跨目录压缩PDF解决方案

跨目录读取输入PDF失败处理

  • 先检查目录权限:运行Node服务的用户需要对/books目录有读取权限,对目标输出目录有写入权限,可通过ls -l /<目录路径>命令查看权限配置。
  • 优先使用绝对路径:避免相对路径的工作目录歧义,Linux/macOS下绝对路径以/开头,Windows下注意盘符和反斜杠转义,示例路径C:\\books\\input.pdf。
  • 快速排查错误:去掉命令中的-dQUIET参数,运行后查看GhostScript输出的具体错误信息,可快速定位是路径不存在、权限不足还是文件格式问题。

跨目录输出压缩PDF方法

直接在-sOutputFile参数中指定目标输出的绝对路径即可,原生命令示例如下:

ghostscript -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=/compressed/output.pdf /books/input.pdf

Node中ghostscript4js调用示例

直接传入输入输出的绝对路径构造参数即可,无需将PDF存放在server.js同级目录:

const gs = require('ghostscript4js');

// 替换为你实际的输入输出绝对路径
const inputPdf = '/books/待压缩文件.pdf';
const outputPdf = '/compressed/压缩后文件.pdf';

const gsArgs = [
  '-sDEVICE=pdfwrite',
  '-dCompatibilityLevel=1.4',
  '-dPDFSETTINGS=/printer',
  '-dNOPAUSE',
  '-dQUIET',
  '-dBATCH',
  `-sOutputFile=${outputPdf}`,
  inputPdf
];

gs.execute(gsArgs, (err) => {
  if (err) {
    console.log('压缩出错:', err);
    return;
  }
  console.log('压缩完成,输出路径:', outputPdf);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:06:04