PDF Generation Template Editor
Open-source visual PDF generation engine with customizable templates and developer-friendly APIs.
Open-source visual PDF generation engine with customizable templates and developer-friendly APIs.
Use the CPDFDocument.GetOptimizeOption() method to get the document's optimization options object:
CPDFDocument document = CPDFDocument.InitWithFilePath("input.pdf");
CPDFOptimizeOption optimizeOption = document.GetOptimizeOption();
if (optimizeOption.IsValid())
{
Console.WriteLine("Optimization options obtained successfully");
}Use the SetFlag() method to set optimization flags. Multiple flags can be combined using bitwise OR (|):
// 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();| Flag | Value | Description |
|---|---|---|
OPTIMIZE_FLAG_RMNOTUSE | 1 | Remove unused resources and elements |
OPTIMIZE_FLAG_RMEPTOBJ | 1<<1 | Remove empty objects |
OPTIMIZE_FLAG_RMSPEATTR | 1<<2 | Remove special attributes |
OPTIMIZE_FLAG_RMEMBFONT | 1<<3 | Optimize embedded font memory usage |
OPTIMIZE_FLAG_RMINVALINK | 1<<4 | Remove invalid links |
OPTIMIZE_FLAG_RMINVABK | 1<<5 | Remove invalid bookmarks |
OPTIMIZE_FLAG_BCOMPRESSIMAGE | 1<<6 | Enable image compression |
OPTIMIZE_FLAG_RMBK | 1<<7 | Remove bookmarks |
OPTIMIZE_FLAG_RMANNOT | 1<<8 | Remove annotations |
OPTIMIZE_FLAG_RMFORM | 1<<9 | Remove forms |
OPTIMIZE_FLAG_RMMULMEDIA | 1<<10 | Remove multimedia content |
OPTIMIZE_FLAG_RMDOCINFO | 1<<11 | Remove document info (author, title, etc.) |
OPTIMIZE_FLAG_RMMEDTADATA | 1<<12 | Remove metadata |
OPTIMIZE_FLAG_RMOBJDATA | 1<<13 | Remove object data |
OPTIMIZE_FLAG_RMFILEATTACHMENT | 1<<14 | Remove file attachments |
OPTIMIZE_FLAG_RMEXTERNCROSSREF | 1<<15 | Remove external cross-references |
OPTIMIZE_FLAG_RMOTHERAPPDATA | 1<<16 | Remove other application data |
OPTIMIZE_FLAG_RMHIDERLAYER | 1<<17 | Remove hidden layers |
OPTIMIZE_FLAG_MERGEVISIBLELAYER | 1<<18 | Merge visible layers |
OPTIMIZE_FLAG_USEFLATE | 1<<19 | Use Flate (ZIP) compression |
OPTIMIZE_FLAG_FLAT_REPLACELZW | 1<<20 | Replace LZW compression with Flate |
OPTIMIZE_FLAG_RMUNUSEDTARGET | 1<<21 | Remove unused target objects |
OPTIMIZE_FLAG_OPTIMIZEPAGECONTENT | 1<<22 | Optimize page content |
OPTIMIZE_FLAG_OPTIMIZEPDFFASTWEBVIEW | 1<<23 | Enable fast web view optimization (linearization) |
OPTIMIZE_FLAG_RMFORMCOMMITIMPORTRESETACTION | 1<<24 | Remove form submit/import/reset actions |
OPTIMIZE_FLAG_RMJSACTION | 1<<25 | Remove JavaScript actions |
OPTIMIZE_FLAG_RMPAGETHUMBNAIL | 1<<26 | Remove page thumbnails |
OPTIMIZE_FLAG_RMREPLACEIMAGE | 1<<27 | Remove and replace images |
OPTIMIZE_FLAG_RMLABEL | 1<<28 | Remove labels |
OPTIMIZE_FLAG_RMPRINTSETTINGS | 1<<29 | Remove print settings |
OPTIMIZE_FLAG_RMSEARCHINDEX | 1<<30 | Remove search index |