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

如何向PostScript脚本传递参数?GhostScript新手求助

给PostScript脚本传递参数的几种实用方法

嘿,刚接触PostScript和Ghostscript确实会有点摸不着头脑,我来给你分享几个不用把整个脚本塞进命令行的靠谱方法,轻松把PowerShell里的$par1传给你的pdfProc.ps~

方法1:用Ghostscript的-d/-s参数定义全局变量

这是最常用也最直观的方式,Ghostscript允许你通过-d(传递数值)或-s(传递字符串)参数,在PostScript的系统字典里定义变量,脚本里直接就能调用。

操作步骤:

  1. 修改PowerShell命令,在调用Ghostscript时追加参数:
    • 如果$par1是数值:
      gswin64c.exe -o "result.pdf" -sDEVICE=pdfwrite -dPar1=$par1 pdfProc.ps -f "input.pdf"
      
    • 如果$par1是字符串(比如带空格的文本):
      gswin64c.exe -o "result.pdf" -sDEVICE=pdfwrite -sPar1="$par1" pdfProc.ps -f "input.pdf"
      
  2. 在pdfProc.ps里使用参数:
    直接通过变量名调用即可,比如:
    % pdfProc.ps
    % 可选:把全局变量存到本地变量,方便后续复用
    /myParameter Par1 def
    
    % 示例:将参数打印到Ghostscript控制台
    myParameter ==
    
    % 接下来就可以用这个参数做你需要的处理,比如修改PDF内容、计算等
    

方法2:通过命令行位置参数传递

如果你不想用-d/-s,也可以把参数直接放在PostScript文件名后面,然后在脚本里通过argc(参数个数)和argv(参数数组)来获取。

操作步骤:

  1. 修改PowerShell命令:
    gswin64c.exe -o "result.pdf" -sDEVICE=pdfwrite pdfProc.ps "$par1" -f "input.pdf"
    
    注意:参数要放在pdfProc.ps之后、-f input.pdf之前。
  2. 在pdfProc.ps里获取参数:
    % pdfProc.ps
    % 先检查参数是否符合预期(argc包含Ghostscript程序名、脚本名和你的参数,所以预期值为3)
    argc 3 ne {
        (Error: 请传递一个参数!) ==
        quit
    } if
    
    % 获取你传递的参数(argv[0]是程序名,argv[1]是脚本名,argv[2]是$par1)
    /myParameter argv 2 get def
    
    % 使用参数
    myParameter ==
    

方法3:通过环境变量传递

还有一种灵活的方式,先在PowerShell里把$par1设为环境变量,再在PostScript脚本里读取它。

操作步骤:

  1. 在PowerShell里设置环境变量:
    $env:MY_CUSTOM_PARAM = $par1
    gswin64c.exe -o "result.pdf" -sDEVICE=pdfwrite pdfProc.ps -f "input.pdf"
    
  2. 在pdfProc.ps里读取环境变量:
    % pdfProc.ps
    % 读取环境变量
    /MY_CUSTOM_PARAM getenv /myParameter def
    
    % 检查是否成功读取(环境变量不存在会返回null)
    myParameter null eq {
        (Error: 未找到环境变量MY_CUSTOM_PARAM) ==
        quit
    } if
    
    % 使用参数
    myParameter ==
    

小提示

  • 如果参数里有空格、特殊字符,记得在PowerShell里用双引号把参数包起来,避免被拆分。
  • 优先推荐方法1,因为它逻辑清晰,脚本里的变量名一目了然,不容易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:15:34