2

Ghostscriptを使用してJPEGをPDFに変換します。

gs -sDEVICE=pdfwrite -o d.pdf viewjpeg.ps -c "(Imgp3826.Jpeg) viewJPEG showpage 

これにより、デフォルトのページサイズと画像を含むPDFが左下隅に作成されます。正しいサイズのページを作成するには、スクリプトを変更する必要があります。

このメモの内容:https ://stackoverflow.com/a/6508854/907576

彼らはImageMagickを使用してこれを行いますが、私はそれを使用できません-私はGhostscriptのみを使用できます。

から幅と高さの値を取得viewjpeg.psしてページサイズに設定することはできますか?

私はで見るviewjpeg.ps

/height NextByte 8 bitshift NextByte add def
/width NextByte 8 bitshift NextByte add def

この情報を読み取るためにJPEGヘッダーを使用しているようです。

その後、再利用できます<</PageSize [${dimension}]>>か?

4

3 に答える 3

2

これらの数値を /PageSize の引数として直接使用することはできません。これらは画像の高さと幅 (画像サンプル) であり、PageSize の引数は PostScript 単位 (1/72 インチ) であるためです。

ただし、現在の解像度でそれらをスケーリングし、スケーリングされた数値を使用することはできます。

(幅/解像度) * 72 および (高さ/解像度) * 72 で十分です。

そう :

currentpagedevice /HWResolution get aload
height exch div 72 mul
exch width exch div 72 mul
exch 2 array 3 1 roll astore
<< /PageSize 3 -1 roll >> setpagedevice

警告: 実際にこれを試す時間がありませんでした....

于 2012-10-02T14:39:38.757 に答える
2

FWIW、viewJPEG プロシージャの記述方法により、上記の単純な追加は単独では機能しません。

別の手順で viewjpeg.ps を拡張することをお勧めします。

/viewJPEGgetsize {      % <file|string> ==> width height
    save
    JPEGdict begin
    /saved exch def
    /scratch 1 string def
    dup type /stringtype eq { (r) file } if
    /F exch def

    readJPEGmarkers begin
    width height
    saved end restore
} bind def

そして、次のように呼び出すことができます。

gs -I../lib -sDEVICE=pdfwrite \
   -o stuff.pdf viewjpeg.ps   \
   -c "(image.jpg) <</PageSize 2 index viewJPEGgetsize 2 array astore>> setpagedevice viewJPEG"
于 2012-10-02T15:13:00.723 に答える
0
 gs -sDEVICE=pdfwrite -o /pathTo/newPdf.pdf "/pathTo/viewjpeg.ps" -c "(/pathTo/jpgToPdf.JPG) << /PageSize [400 300] >> setpagedevice  viewJPEG"
  • /pathTo/newPdf.pdf - 生成されるファイル
  • /pathTo/jpgToPdf.JPG - 入力 jpg ファイル
  • << /PageSize [400 300] >> setpagedevice viewJPEG - viewjpeg.ps ユーティリティ コマンド ライン引数
  • [400 300] - 式 (幅/解像度) * 72 および (高さ/解像度) * 72 で計算された画像サイズ、幅、高さ
于 2016-07-22T06:43:05.817 に答える