2016-08-25 31 views
0

多くのページが595x420 ppiのPDF文書がありますが、このページは595x210でプッシュする必要がありますが、すべてのテキストを表示する必要があります。サイズ変更PDF Ghostscript by nonproportionally

です.Ghostscriptを使用してページのカスタムサイズに合わせて、非表示(ズームなし)のPDFページの縮尺を変更できますか、別のプログラムを使用する必要がありますか?

+0

スケールを変更することなく、595x420ページのすべてのテキストを半分のサイズのページに収める予定はありますか? – KenS

+0

内容を記入するページが必要なので、比率を変更する必要があることを知っています – DimmuBoy

答えて

1

スケーリングを1軸に適用し、他の軸に適用しない場合は、PostScriptプログラミングを行う必要があります。

/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のスケール値を算出し、それらを同じになり:/ghostpdl/Resource/Init/pdf_main.psに必要な行列を算出するコードです。それらを異ならせたい場合は、それを変更する必要があります。また、-dDEVICEHEIGHTPOINTS-dDEVICEWIDTHPOINTSを使用して特定のメディアサイズを設定し、PDFファイルのメディアサイズを変更しないように-dFIXEDMEDIAに設定する必要があります。

+0

ありがとうございますが、これは私が今知っているよりも高いレベルです。この解決方法についてもっと教えていただけますか?このコードでpdf_main.psファイルが見つかりましたが、私は何を変更すべきか分かりません。 – DimmuBoy

+1

ここで便利な変更を加えるには、PostScript言語を理解する必要があります。 PostScriptはマトリックスメソッドを使用してユーザー空間をデバイス空間にマップし、この関数はxとyの倍率が同じに選択され、1,1からの最小距離の新しいCTMを計算します。おそらく、メディアを拡大縮小するために必要な最小のxまたはyを計算してから、最小の変更を設定したいと思うでしょう。 – KenS

+0

ありがとう!自分のサイズ「1 .5スケール」に追加する必要があるのは1行だけです。このサイトはPS言語の理解に役立ちましたhttp://www.mefco.com/psc/ – DimmuBoy

関連する問題