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

时间:2016-08-25 07:41:40

标签: pdf printing resize ghostscript

我的PDF文档有很多页面595x420 ppi,但我需要在595x210中推送这些页面,但所有文本都必须可见。

那么..我可以不成比例地改变PDF页面的比例(没有缩放)以适应ghostscript的页面自定义大小,或者我必须使用另一个程序吗?

1 个答案:

答案 0 :(得分:1)

如果要将缩放应用于一个轴而不是另一个轴,则必须进行一些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文件调整媒体大小。