Если вы хотите, чтобы масштабирование применялось к одной оси, а не к другой, вам нужно будет выполнить некоторое программирование 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
Этот код вычисляет значения шкалы х и у, и делает их одинаковыми. Если вы хотите, чтобы они отличались, это то, что вам нужно будет изменить. Обратите внимание, что вам также необходимо установить определенный размер носителя с помощью -dDEVICEHEIGHTPOINTS
и -dDEVICEWIDTHPOINTS
и установить -dFIXEDMEDIA
, чтобы предотвратить изменение размера файла PDF.
Как вы планируете вставлять весь текст с страницы 595x420 на половину страницы без изменения масштаба? – KenS
Я знаю, что соотношение должно быть изменено, потому что мне нужно заполнить страницу контентом – DimmuBoy