--dup-- 错误中的 ghostscript stackunderflow

ghostscript stackunderflow in --dup-- error

我正在尝试使用 ghost 脚本将 jpg 转换为 pdf。我使用的命令是

 C:\Users\kbged\Desktop\XAMPP\php\bin\gs\gs9.54.0\bin\gswin64c  -sDEVICE=pdfwrite -sOutputFile=C:\Users\kbged\Pictures\php48D4.pdf C:\Users\kbged\Desktop\XAMPP\php\bin\gs\gs9.54.0\lib\viewjpeg.ps -c (C:\Users\kbged\Pictures\group_image.jpg) viewJPEG

然而,这以以下错误结束:

GPL Ghostscript 9.54.0 (2021-03-30)
Copyright (C) 2021 Artifex Software, Inc.  All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
Error: /stackunderflow in --dup--
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--
Dictionary stack:
   --dict:732/1123(ro)(G)--   --dict:0/20(G)--   --dict:78/200(L)--   --dict:8/20(L)--
Current allocation mode is local
GPL Ghostscript 9.54.0: Unrecoverable error, exit code 1

我试图查看那个 viewjpeg.ps 文件,几乎接近尾声时我看到了


% This lets you do stuff on the command line like:
% gs -sDEVICE=pdfwrite -o stuff%03d.pdf viewjpeg.ps -c "(image.jpg) << /PageSize 2 index viewJPEGgetsize 2 array astore  >> setpagedevice viewJPEG"
% so the output size matches the original image.

我其实不明白错误在哪里... 任何帮助,将不胜感激!谢谢!

有多种方法可以将图像转换为 PDF,这可能不是在 Ghostscript 中将 Jpeg 转换为 PDF 的最佳方法,但您问过为什么它对您不起作用。

以下 应该 在 cmd 文件中,首先按照示例工作,一旦证明然后尝试更改您认为需要更改的最后一行的 <>。请注意,长行非常脆弱,^

之后不能有 space

此外,顺序和组合很容易使 GS 陷入错误状态。 CMD 文件名最好始终为“FullPath\quoted”,如果您不想最初 CD 到输出目录(以便更容易避免使用转义名称),则将最后一行的开头更改为

-c "("C:\Users\kbged\Pictures\group_image.jpg") <<......

请注意,更简单的方法是编写您自己的 input.PS 以避免潜在的命令行截断。

@echo off
REM switch to folder of jpeg
cd "C:\Users\kbged\Pictures"
"C:\Users\kbged\Desktop\XAMPP\php\bin\gs\gs9.54.0\bin\gswin64c.exe" -dNOSAFER -sDEVICE=pdfwrite ^
-o "C:\Users\kbged\Pictures\php48D4.pdf" "C:\Users\kbged\Desktop\XAMPP\php\bin\gs\gs9.54.0\lib\viewjpeg.ps" ^
-c "(group_image.jpg) << /PageSize 2 index viewJPEGgetsize 2 array astore >> setpagedevice viewJPEG"