通过 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 文件调整媒体大小。
我有许多 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 文件调整媒体大小。