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

GhostScript 9.53.3添加带透明度文字水印出现undefined报错如何解决

报错原因
  • 你用到的透明度设置相关操作符属于PostScript扩展功能,GhostScript 9.52及之后版本默认禁用了PostScript代码的透明度操作权限,直接调用未声明的扩展操作符会触发未定义错误,导致EndPage执行过程中断,最终抛出你看到的/undefined in /--.endpage--报错。
  • .setfillconstantalpha不是公开的标准调用接口,即使开启权限也可能存在兼容性问题。
正确实现方案

1. 调整水印配置脚本

修改Watermark_def.ps内容如下,使用官方推荐的setfillalpha接口设置填充透明度:

<<
   /EndPage
   {
     gsave
       /Helvetica-Bold 120 selectfont
       % 填充透明度设置为0.5
       0.5 setfillalpha
       .45 setgray
       130 430 moveto 30 rotate (Entwurf) show -30 rotate
       130 130 moveto 30 rotate (Entwurf) show -30 rotate
     grestore
     true
   } bind
>> setpagedevice

如果偏好使用旧版setopacityalpha接口,直接替换0.5 setfillalpha为0.5 setopacityalpha即可,9.53版本仍兼容该接口。

2. 调整执行命令

添加两个参数开启透明度权限、保证输出PDF支持透明度:

cat start.pdf | gs -q -dBATCH -dNOPAUSE -dALLOWPSTRANSPARENCY -dCompatibilityLevel=1.4 -sDEVICE=pdfwrite -sOutputFile=/workspace/test.pdf Watermark_def.ps -

其中-dALLOWPSTRANSPARENCY用于开启PostScript透明度操作权限,-dCompatibilityLevel=1.4保证输出的PDF版本支持透明度特性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:30:01