通过 Ghostscript 不成比例地更改大小 PDF

Change size PDF unproportionally by Ghostscript

我有许多 595x420 ppi 页面的 PDF 文档,但我需要将此页面推入 595x210,但所有文本都必须可见。

所以..我可以不成比例地更改 PDF 页面的比例(无缩放)以适应带有 ghostscript 的自定义页面大小,还是我必须使用其他程序?

如果要将缩放应用于一个轴而不是另一个轴,则必须进行一些 PostScript 编程。在/ghostpdl/Resource/Init/pdf_main.ps中是计算所需矩阵的代码:

/pdf_PDF2PS_matrix {    % <pdfpagedict> -- matrix
  matrix currentmatrix matrix setmatrix exch
  % stack: savedCTM <pdfpagedict>
  dup get_any_box
  % stack: savedCTM <pdfpagedict> /Trim|Crop|Art|MediaBox <Trim|Crop|Art|Media Box>
  oforce_elems normrect_elems fix_empty_rect_elems 4 array astore
  //systemdict /PDFFitPage known {
    PDFDEBUG { (Fiting PDF to imageable area of the page.) = flush } if

该代码计算 x 和 y 比例值并使它们相同。如果您希望它们有所不同,那就是您必须修改的内容。请注意,您还必须使用 -dDEVICEHEIGHTPOINTS-dDEVICEWIDTHPOINTS 设置特定的媒体大小,并设置 -dFIXEDMEDIA 以防止 PDF 文件调整媒体大小。