ps2pdf:保留页面大小

Bow*_*ark 10 pdf vector-graphics ghostscript

我有myfile.ps一个矢量图像.但是当我跑步的时候

ps2pdf myfile.ps
Run Code Online (Sandbox Code Playgroud)

看起来输出页面大小是A4:矢量图像太大而被切掉,所以大约丢失了一英寸.

除原始矢量图像外,输出PDF文件中还会打印以下伪标题:

PLOT SIZE:8.02x8.62Inches
Magnification:7354.21X
Run Code Online (Sandbox Code Playgroud)

有没有选项或方式将PS文件转换为PDF格式保留原始文件大小?

Ram*_*man 14

如果输入的postscript有EPS BoundingBox,则应该保留页面大小:

ps2pdf -dEPSCrop <input.ps> <output.pdf>


Kur*_*fle 7

我怀疑你引用的2行是否真的在PS文件中引用了......它们不是%注释字符之前吗?

  • 如果它们之前没有这些字符,那么PS解释器就不会起作用,因为它们不是已知的PostScript运算符.

  • 如果它们之前是这样的字符,那么PS解释器就会忽略它们,因为......它们只是注释!:-)

如果要将此PS文件转换为PDF,最好直接运行Ghostscript(ps2pdf无论如何只是围绕Ghostscript命令的瘦shell脚本包装器):

gs -o myfile.pdf     \
   -sDEVICE=pdfwrite \
   -g5775x6207       \
   -dPDFFitPage      \
    myfile.ps
Run Code Online (Sandbox Code Playgroud)

说明:

  1. -g...给出中等大小的像素.
  2. A4页面的尺寸为595x842pt(PostScript点).
  3. 1英寸与72个PostScript点相同.
  4. 内部默认情况下,Ghostscript在PDF输出方面的计算分辨率为每英寸720像素.
  5. 因此对于PDF输出595x842pt == 5950x8420px.
  6. 因此,对你的案件有疑问8.02x8.62Inches ?? 5775x6207px.


小智 5

我不被允许发表评论,但我必须警告大家,当前的所有答案都容易受到恶意后记文件的攻击。

\n\n

gs这样 使用是非常危险的。ps2pdf内部使用该-dSAFER选项,例如,防止不受信任的 postscript 文件加密您的文件并呈现 pdf,要求您支付赎金以获得解密密钥!总是使用-dSAFER!

\n\n

虽然-o outputFile.pdf很好,但它也没有记录(通过手册页或gs -h但从9.23 版本开始,它也没有文档记录(通过手册页或 )。

\n\n

下面的命令可以正常工作,而不必担心顶部会像其他解决方案一样被切断:

\n\n
gs -sOutputFile=file.pdf -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sDEVICE=pdfwrite -dSAFER file.ps\n
Run Code Online (Sandbox Code Playgroud)\n\n

-sPAPERSIZE=a4a4 纸张尺寸是如何指定的。

\n\n

要获取页面大小,您可以查找如下行:

\n\n
%%PageBoundingBox:\xc2\xb712\xc2\xb712\xc2\xb7583\xc2\xb7830\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后使用

\n\n
gs -sOutputFile=file.pdf -dNOPAUSE -dBATCH -g583x830 -r72 -sDEVICE=pdfwrite -dSAFER file.ps\n
Run Code Online (Sandbox Code Playgroud)\n\n

它工作完美。

\n