Skip to content
ComPDF
DemoSampleAPI ReferenceFAQ

PDF Generation Template Editor

Open-source visual PDF generation engine with customizable templates and developer-friendly APIs.

View on GitHub
Guides

Optimization Options Configuration

Get Optimization Options

Use the CPDFDocument.GetOptimizeOption() method to get the document's optimization options object:

c#
CPDFDocument document = CPDFDocument.InitWithFilePath("input.pdf");
CPDFOptimizeOption optimizeOption = document.GetOptimizeOption();

if (optimizeOption.IsValid())
{
    Console.WriteLine("Optimization options obtained successfully");
}

Set Optimization Flags

Use the SetFlag() method to set optimization flags. Multiple flags can be combined using bitwise OR (|):

c#
// Set a single flag
optimizeOption.SetFlag(CPDF_OPTIMIZE_FLAG.OPTIMIZE_FLAG_RMNOTUSE);

// Combine multiple flags
CPDF_OPTIMIZE_FLAG combinedFlags = 
    CPDF_OPTIMIZE_FLAG.OPTIMIZE_FLAG_RMNOTUSE |
    CPDF_OPTIMIZE_FLAG.OPTIMIZE_FLAG_BCOMPRESSIMAGE |
    CPDF_OPTIMIZE_FLAG.OPTIMIZE_FLAG_RMDOCINFO |
    CPDF_OPTIMIZE_FLAG.OPTIMIZE_FLAG_USEFLATE;
optimizeOption.SetFlag(combinedFlags);

// Get current flags
CPDF_OPTIMIZE_FLAG currentFlags = optimizeOption.GetFlag();

CPDF_OPTIMIZE_FLAG Optimization Flag Description

FlagValueDescription
OPTIMIZE_FLAG_RMNOTUSE1Remove unused resources and elements
OPTIMIZE_FLAG_RMEPTOBJ1<<1Remove empty objects
OPTIMIZE_FLAG_RMSPEATTR1<<2Remove special attributes
OPTIMIZE_FLAG_RMEMBFONT1<<3Optimize embedded font memory usage
OPTIMIZE_FLAG_RMINVALINK1<<4Remove invalid links
OPTIMIZE_FLAG_RMINVABK1<<5Remove invalid bookmarks
OPTIMIZE_FLAG_BCOMPRESSIMAGE1<<6Enable image compression
OPTIMIZE_FLAG_RMBK1<<7Remove bookmarks
OPTIMIZE_FLAG_RMANNOT1<<8Remove annotations
OPTIMIZE_FLAG_RMFORM1<<9Remove forms
OPTIMIZE_FLAG_RMMULMEDIA1<<10Remove multimedia content
OPTIMIZE_FLAG_RMDOCINFO1<<11Remove document info (author, title, etc.)
OPTIMIZE_FLAG_RMMEDTADATA1<<12Remove metadata
OPTIMIZE_FLAG_RMOBJDATA1<<13Remove object data
OPTIMIZE_FLAG_RMFILEATTACHMENT1<<14Remove file attachments
OPTIMIZE_FLAG_RMEXTERNCROSSREF1<<15Remove external cross-references
OPTIMIZE_FLAG_RMOTHERAPPDATA1<<16Remove other application data
OPTIMIZE_FLAG_RMHIDERLAYER1<<17Remove hidden layers
OPTIMIZE_FLAG_MERGEVISIBLELAYER1<<18Merge visible layers
OPTIMIZE_FLAG_USEFLATE1<<19Use Flate (ZIP) compression
OPTIMIZE_FLAG_FLAT_REPLACELZW1<<20Replace LZW compression with Flate
OPTIMIZE_FLAG_RMUNUSEDTARGET1<<21Remove unused target objects
OPTIMIZE_FLAG_OPTIMIZEPAGECONTENT1<<22Optimize page content
OPTIMIZE_FLAG_OPTIMIZEPDFFASTWEBVIEW1<<23Enable fast web view optimization (linearization)
OPTIMIZE_FLAG_RMFORMCOMMITIMPORTRESETACTION1<<24Remove form submit/import/reset actions
OPTIMIZE_FLAG_RMJSACTION1<<25Remove JavaScript actions
OPTIMIZE_FLAG_RMPAGETHUMBNAIL1<<26Remove page thumbnails
OPTIMIZE_FLAG_RMREPLACEIMAGE1<<27Remove and replace images
OPTIMIZE_FLAG_RMLABEL1<<28Remove labels
OPTIMIZE_FLAG_RMPRINTSETTINGS1<<29Remove print settings
OPTIMIZE_FLAG_RMSEARCHINDEX1<<30Remove search index