Class AdvancedCompressionOptions
- java.lang.Object
-
- com.ironsoftware.ironpdf.compression.AdvancedCompressionOptions
-
public class AdvancedCompressionOptions extends Object
Configuration for the advanced compression pipeline.Recommended starting points:
// Web/email — strongest size reduction AdvancedCompressionOptions web = new AdvancedCompressionOptions(); web.setJpegQuality(70); web.setTargetImageDpi(150); web.setRemoveStructureTree(true); // Print quality AdvancedCompressionOptions print = new AdvancedCompressionOptions(); print.setJpegQuality(90); print.setTargetImageDpi(300);Mirrors the .NET
AdvancedCompressionOptionsclass shipped in IronPdf 2026.6.
-
-
Constructor Summary
Constructors Constructor Description AdvancedCompressionOptions()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetCompressionLevel()zlib compression level (0-9).IntegergetJpegQuality()JPEG quality used when re-encoding images during optimization (1-100).ObjectStreamModegetObjectStreams()Object stream mode used when writing the output PDF.intgetOptimizeImagesMinArea()Minimum image area (width × height pixels) for image optimization to apply.intgetOptimizeImagesMinHeight()Minimum image height (in pixels) for image optimization to apply.intgetOptimizeImagesMinWidth()Minimum image width (in pixels) for image optimization to apply.IntegergetTargetImageDpi()Target DPI for image downsampling during advanced compression.booleanisCoalesceContents()Merge a page's separate content streams so they Flate-compress together.booleanisCompressStreams()Compress content streams using zlib/Flate.booleanisDecodeGeneralizedStreams()Decode generalized filters (FlateDecode, LZW, ASCII85, ASCIIHex) before re-encoding.booleanisHighQualityImageSubsampling()4:4:4 chroma subsampling when true (better color), 4:1:1 when false (smaller).booleanisRecompressFlate()Re-compress already Flate-encoded streams usinggetCompressionLevel().booleanisRemoveStructureTree()Remove the document structure tree before compression.booleanisRemoveUnreferencedResources()Drop indirect objects that are not referenced from the document catalog.booleanpdfiumWillReEncode()Returns true if pdfium-side image re-encoding is engaged (because a positivetargetImageDpiwas set).AdvancedCompressionOptionssetCoalesceContents(boolean v)AdvancedCompressionOptionssetCompressionLevel(int v)AdvancedCompressionOptionssetCompressStreams(boolean v)AdvancedCompressionOptionssetDecodeGeneralizedStreams(boolean v)AdvancedCompressionOptionssetHighQualityImageSubsampling(boolean v)AdvancedCompressionOptionssetJpegQuality(Integer jpegQuality)AdvancedCompressionOptionssetObjectStreams(ObjectStreamMode v)AdvancedCompressionOptionssetOptimizeImagesMinArea(int v)AdvancedCompressionOptionssetOptimizeImagesMinHeight(int v)AdvancedCompressionOptionssetOptimizeImagesMinWidth(int v)AdvancedCompressionOptionssetRecompressFlate(boolean v)AdvancedCompressionOptionssetRemoveStructureTree(boolean v)AdvancedCompressionOptionssetRemoveUnreferencedResources(boolean v)AdvancedCompressionOptionssetTargetImageDpi(Integer targetImageDpi)
-
-
-
Method Detail
-
getJpegQuality
public Integer getJpegQuality()
JPEG quality used when re-encoding images during optimization (1-100). When set, automatically enables image optimization.Recommended settings:
null— No image re-encoding (default)95— Archival, minimal artifacts85— High quality70— Balanced, good for general use50— Web/email; visible artifacts, smaller files
Where the re-encoding happens depends on
getTargetImageDpi():targetImageDpiset (default150): each image is downsampled and re-encoded at this quality.optimizeImagesis skipped to avoid double JPEG encoding.targetImageDpi = null:optimizeImagesre-encodes images at this quality without changing pixel dimensions.
-
setJpegQuality
public AdvancedCompressionOptions setJpegQuality(Integer jpegQuality)
-
getTargetImageDpi
public Integer getTargetImageDpi()
Target DPI for image downsampling during advanced compression. Images whose effective rendered DPI exceeds this value are box-filter downsampled totargetImageDpibefore re-encoding.Recommended values:
300— Print quality, lossless to the eye at normal viewing distance200— Crisp on high-DPI / retina screens150— Default; best size/quality balance for screen + email96— Aggressive; soft text but still readablenull— Disabled; preserve original resolution (largest file)
Lossy. Once an image is downsampled it cannot be restored to its original resolution.
-
setTargetImageDpi
public AdvancedCompressionOptions setTargetImageDpi(Integer targetImageDpi)
-
isHighQualityImageSubsampling
public boolean isHighQualityImageSubsampling()
4:4:4 chroma subsampling when true (better color), 4:1:1 when false (smaller).
-
setHighQualityImageSubsampling
public AdvancedCompressionOptions setHighQualityImageSubsampling(boolean v)
-
isRemoveStructureTree
public boolean isRemoveStructureTree()
Remove the document structure tree before compression.
-
setRemoveStructureTree
public AdvancedCompressionOptions setRemoveStructureTree(boolean v)
-
isCompressStreams
public boolean isCompressStreams()
Compress content streams using zlib/Flate.
-
setCompressStreams
public AdvancedCompressionOptions setCompressStreams(boolean v)
-
isRecompressFlate
public boolean isRecompressFlate()
Re-compress already Flate-encoded streams usinggetCompressionLevel().
-
setRecompressFlate
public AdvancedCompressionOptions setRecompressFlate(boolean v)
-
getCompressionLevel
public int getCompressionLevel()
zlib compression level (0-9). Default 9.
-
setCompressionLevel
public AdvancedCompressionOptions setCompressionLevel(int v)
-
getObjectStreams
public ObjectStreamMode getObjectStreams()
Object stream mode used when writing the output PDF.
-
setObjectStreams
public AdvancedCompressionOptions setObjectStreams(ObjectStreamMode v)
-
isRemoveUnreferencedResources
public boolean isRemoveUnreferencedResources()
Drop indirect objects that are not referenced from the document catalog.
-
setRemoveUnreferencedResources
public AdvancedCompressionOptions setRemoveUnreferencedResources(boolean v)
-
isCoalesceContents
public boolean isCoalesceContents()
Merge a page's separate content streams so they Flate-compress together.
-
setCoalesceContents
public AdvancedCompressionOptions setCoalesceContents(boolean v)
-
isDecodeGeneralizedStreams
public boolean isDecodeGeneralizedStreams()
Decode generalized filters (FlateDecode, LZW, ASCII85, ASCIIHex) before re-encoding.
-
setDecodeGeneralizedStreams
public AdvancedCompressionOptions setDecodeGeneralizedStreams(boolean v)
-
getOptimizeImagesMinWidth
public int getOptimizeImagesMinWidth()
Minimum image width (in pixels) for image optimization to apply.
-
setOptimizeImagesMinWidth
public AdvancedCompressionOptions setOptimizeImagesMinWidth(int v)
-
getOptimizeImagesMinHeight
public int getOptimizeImagesMinHeight()
Minimum image height (in pixels) for image optimization to apply.
-
setOptimizeImagesMinHeight
public AdvancedCompressionOptions setOptimizeImagesMinHeight(int v)
-
getOptimizeImagesMinArea
public int getOptimizeImagesMinArea()
Minimum image area (width × height pixels) for image optimization to apply.
-
setOptimizeImagesMinArea
public AdvancedCompressionOptions setOptimizeImagesMinArea(int v)
-
pdfiumWillReEncode
public boolean pdfiumWillReEncode()
Returns true if pdfium-side image re-encoding is engaged (because a positivetargetImageDpiwas set). The qpdfoptimizeImagesstep is skipped in that case to avoid double JPEG encoding.
-
-