我正在使用 Matlab 输出多页 PS 文件:
print(figure, '-dpsc2', fullfile(folder, [file '.ps']), '-r600', '-append')
然后使用 Matlab 调用 Ghostscript 将生成的 PS 文件转换为 PDF:
system(['"' gsPath '" -sDEVICE=pdfwrite \
-dDEVICEWIDTHPOINTS=' num2str(int32(width*72)) ' \
-dDEVICEHEIGHTPOINTS=' num2str(int32(height*72)) ' \
-dPDFFitPage \
-o "' fullfile(folder, [file '.pdf']) '" "' fullfile(folder, [file '.ps']) '"']);
这只是一种非常难以阅读的方式来写一些东西
gswin64c -sDEVICE=pdfwrite ^
-dDEVICEWIDTHPOINTS=100 ^
-dDEVICEHEIGHTPOINTS=100 ^
-dPDFFitPage ^
-o "C:\folder\output.pdf" "C:\folder\input.ps"
我在其中输入了设备尺寸和输入/输出路径的示例值。当我使用此代码将单个图形(一页)打印为 PDF 时,一切正常。但是,当将多个图形(多页)打印到 PDF 时,Ghostscript 会引发错误:
GPL Ghostscript 9.06 (2012-08-08)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
**** Unable to open the initial device, quitting.
现在,如果我删除-dDEVICEWIDTHPOINTS=100 -dDEVICEHEIGHTPOINTS=100
我的 Ghostscript 命令的一部分并再次尝试将多个图形打印到 PDF,它可以正常工作(除了页面大小与我想要的不同)。
GPL Ghostscript 9.06 (2012-08-08)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 4032872 2490784 2311720 1014184 2 done.
有没有其他人遇到过类似的问题并找到了解决此问题的方法?这里的关键之一是我需要能够控制生成的 PDF 的页面大小。谢谢!