高解像度のPDFファイルをサーバーにアップロードしようとしていますが、dpi解像度を下げて、Webアプリケーションにすばやく読み込むことができるように、小さいPDFファイルサイズを生成したいと考えています。
これはiTextSharpでできることですか?または、これを実現できる別のフリーソフトウェアはありますか?
高解像度のPDFファイルをサーバーにアップロードしようとしていますが、dpi解像度を下げて、Webアプリケーションにすばやく読み込むことができるように、小さいPDFファイルサイズを生成したいと考えています。
これはiTextSharpでできることですか?または、これを実現できる別のフリーソフトウェアはありますか?
通常、PDF ファイルには DPI がありません。PDF ファイルに埋め込まれたラスター画像はそうです。できることは、PDF ファイルに埋め込まれた画像を抽出し、解像度を下げてサイズを変更し、ファイルに戻すことです。
本iText in Actionには、このトピックに関する章があります。
Ghostscript はフリー ソフトウェア (必要に応じて) であり、PDF を好きなようにダウンサンプリングできます (つまり、そのページに埋め込まれている可能性のあるピクセル イメージをダウンサンプリングします)。
すべての画像を 72 dpi にダウンサンプリングするコマンドラインの例 (解像度が 144 dpi を超える場合)。最短のコマンドは使用しませんが、実験できるように、潜在的に有用なすべてのパラメーターを意図的に列挙しようとします。
gs \
-o downsampled.pdf \
-sDEVICE=pdfwrite \
-dColorImageDownsampleThreshold=2.0 \
-dGrayImageDownsampleThreshold=2.0 \
-dMonoImageDownsampleThreshold=2.0 \
-dColorImageDownsampleType=/Bicubic \
-dGrayImageDownsampleType=/Bicubic \
-dMonoImageDownsampleType=/Bicubic \
-dDownsampleColorImages=true \
-dDownsampleGrayImages=true \
-dDownsampleMonoImages=true \
-dColorImageResolution=72 \
-dGrayImageResolution=72 \
-dMonoImageResolution=72 \
-dAutoFilterColorImages=false \
-dAutoFilterGrayImages=false \
\
-dEncodeColorImages=true \
-dEncodeGrayImages=true \
-dEncodeMonoImages=true \
-dColorImageFilter=/DCTEncode \
-dGrayImageFilter=/DCTEncode \
-dMonoImageFilter=/CCITTFaxEncode \
input.pdf
すべてのカラー画像 (つまり、73dpi から 144dpi の画像も)をダウンサンプリングする場合は、 -dColorImageDownsampleThreshold=1.0
(Ghostscript のデフォルトは=1.5
);を使用します。他の*ImageDownsampleThreshold設定についても同様です。
*ImageDownsampleTypesの場合 -/Average
またはの値を試すこともできます/Subsample
私の提案し/Bicubic
た . もちろん、モノクロ、グレー、カラーの画像タイプ間で、解像度、サンプリング タイプ、しきい値にさまざまな設定を自由に使用できます。