/** * Object stream mode used when writing the compressed PDF. * * Values are the literal strings the engine expects on * {@code QPdfCompressionFlagsP.object_streams}. */ export declare enum ObjectStreamMode { /** * Pack indirect objects into object streams. Smallest output for PDF 1.5+ (default). */ Generate = "generate", /** * Keep the input's object stream layout unchanged. */ Preserve = "preserve", /** * Write every object as a top-level indirect object (no object streams). * Use when consumer tools cannot read object streams. */ Disable = "disable" } /** * Configuration for the advanced compression pipeline. * * @example Web/email (strongest size reduction) * ```ts * const opts: AdvancedCompressionOptions = { * jpegQuality: 70, * targetImageDpi: 150, * removeStructureTree: true, * }; * ``` * * @example Print quality * ```ts * const opts: AdvancedCompressionOptions = { * jpegQuality: 90, * targetImageDpi: 300, * }; * ``` */ export interface AdvancedCompressionOptions { /** * JPEG quality used when re-encoding images during optimization (1-100). * When set, automatically enables image optimization. * * Default: `null` (no image re-encoding). * * Where the re-encoding happens depends on {@link targetImageDpi}: * - `targetImageDpi` set (default 150): each image is downsampled and * re-encoded at this quality. * - `targetImageDpi = null`: qpdf re-encodes images at this quality * without changing pixel dimensions. */ jpegQuality?: number | null; /** * Target DPI for image downsampling during advanced compression. * Images whose effective rendered DPI exceeds this value are * downsampled before re-encoding. * * Default: `150`. Set to `null` (or `0`) to disable downsampling. * * **Lossy** — once an image is downsampled it cannot be restored to its * original resolution. */ targetImageDpi?: number | null; /** 4:4:4 chroma subsampling when true (better color), 4:1:1 when false. Default true. */ highQualityImageSubsampling?: boolean; /** Remove the document structure tree before compression. Default false. */ removeStructureTree?: boolean; /** Compress content streams using zlib/Flate. Default true. */ compressStreams?: boolean; /** Re-compress already Flate-encoded streams using {@link compressionLevel}. Default true. */ recompressFlate?: boolean; /** zlib compression level (0-9). Default 9. */ compressionLevel?: number; /** Object stream mode used when writing the output PDF. Default {@link ObjectStreamMode.Generate}. */ objectStreams?: ObjectStreamMode; /** Drop indirect objects that are not referenced from the catalog. Default true. */ removeUnreferencedResources?: boolean; /** Merge a page's content streams so they Flate-compress together. Default true. */ coalesceContents?: boolean; /** Decode generalized filters (FlateDecode, LZW, ASCII85, ASCIIHex) before re-encoding. Default true. */ decodeGeneralizedStreams?: boolean; /** Minimum image width (pixels) for image optimization to apply. Default 0. */ optimizeImagesMinWidth?: number; /** Minimum image height (pixels) for image optimization to apply. Default 0. */ optimizeImagesMinHeight?: number; /** Minimum image area (width × height) for image optimization to apply. Default 0. */ optimizeImagesMinArea?: number; } //# sourceMappingURL=compression.d.ts.map