2012-02-29 9 views
21

Javaベースのソリューションが必要です。最悪の場合、Linuxのコマンドラインも必要です。PDFファイル内の画像をダウンサンプリングする方法は?

私はGhostscriptを使用しようとした:

gs -sDEVICE=pdfwrite -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor \ 
    -sProcessColorModel=DeviceCMYK -sPDFACompatibilityPolicy=1 \ 
    -sOutputFile=downgraded.pdf leon_range_my12_w22_brochure.pdf 

が、私はエラーの多くを持って...

+2

これらのパラメータは画像をダウンサンプリングしません。 GSのどのバージョンを使用していますか?バグとしてエラーを報告しましたか? -dPDFAスイッチは、提供していない適合するPDF/Aファイルを作成するための追加情報が必要です。おそらく「エラー」は実際の警告です.... – KenS

答えて

3

は、GhostscriptでするGUIをmoonshinerを試してみてください。

+0

moonshinerは2009年にSourceforgeでの開発活動の5ヵ月間に期待していましたが、現在は死んだプロジェクトのようです。 2009年5月以降の更新はありません.... :-( –

+0

は、gsのコマンドライン文字列を調整するのに非常に便利です。 – macromaniac

+2

@pipitas主にmoonshinerを大きく変更しませんでした。私は活動の欠如はそれが死んで見えることに同意するが、私はまだ今日まで広範囲にそれを使用しています。私はもう何も追加する必要がありません:) – balpha

31

ここでは、Ghostscriptのをコマンドラインで72dpiですし、すべての(カラー、グレー、モノラル)の画像をダウンサンプリングする方法の例です:

gs \ 
    -o downsampled.pdf \ 
    -sDEVICE=pdfwrite \ 
    -dDownsampleColorImages=true \ 
    -dDownsampleGrayImages=true \ 
    -dDownsampleMonoImages=true \ 
    -dColorImageResolution=72 \ 
    -dGrayImageResolution=72 \ 
    -dMonoImageResolution=72 \ 
    -dColorImageDownsampleThreshold=1.0 \ 
    -dGrayImageDownsampleThreshold=1.0 \ 
    -dMonoImageDownsampleThreshold=1.0 \ 
    input.pdf 

更新:
*ImageDownsampleThreshold=1.0パラメータがことを強制しますすべて 72 dpiの目標解像度より高い解像度の画像はダウンサンプリングされます。このパラメータが指定されていない場合(または別の値に設定されている場合)は、デフォルト値の*ImageDownsampleThreshold=1.5が使用されます。このデフォルト値は、108 dpi(またはそれ以上)の値を持つ画像のみをダウンサンプリングし、他のものはそのままにします。

+0

@ codin:全く新しいトピックについてのコメントはありません。新しい質問をして、それを '[ghostscript]' + '[pdf]'とタグ付けしてください。できる限り私はそれに答えようとします。あなたの要求の目的は何かを明記してください。ファイルサイズで保存しますか?画像に含まれる情報を削除しますか?または? –

+0

ありがとう、クルト、素晴らしい答え!私は画像の解像度を36に減らそうとしましたが、出力ファイルのサイズは変更されませんでしたが、サイズの70%は最初のページの画像から与えられました。理由は何ですか? –

+1

@GuidoWalterPettinari:PDF自体にアクセスすることなく、私は推測しません。多分バイトの大部分を占める要素を絞り込むためにファイルに次の答えを適用することができます:http://stackoverflow.com/a/37858893/359307 –

11

は、これは私が使用していますものです:あなたの参考のため

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=OUTPUT.pdf INPUT.pdf

-dPDFSETTINGS = /スクリーン(画面表示のみの品質、72枚のdpiの画像)

- dPDFSETTINGS = /電子ブック(低品質、150 dpiイメージ)

-dPDFSETTINGS =/printer(高品質、300 dpiイメージ)

= /プリプレス(高品質、色保持、300dpiのIMGS)

-dPDFSETTINGS

-dPDFSETTINGS = /デフォルト各ページが一杯になったスキャン文書の

1

(/画面とほぼ同じ)カラー画像は、私は私のページの各文書のカラースキャンした

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \ 
-dColorImageResolution=150 -dNOPAUSE -dBATCH -sOutputFile=output.pdf input.pdf 

上記のコマンドラインの組み合わせを使用して、私は別のサイトで見られる他、

。このコマンドラインを使用すると、ページの解像度が150dpiに低下し、解像度を大幅に損なうことなくファイルサイズを半減できます。これはまだよく見え、Nexus 7ではテキストを快適に読み取ることができます。

+0

あなたはまったくこのコマンドですか?上記の他の組み合わせをマージした場合は、コマンド全体を投稿してください。私は適切に削減されていないカラー画像pdfで問題があります。ありがとう –

関連する問題