Skip to content

PDF 生成模板编辑器

开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。

查看 GitHub

优化选项配置

获取优化选项

使用 CPDFDocument.GetOptimizeOption() 方法获取文档的优化选项对象:

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

if (optimizeOption.IsValid())
{
    Console.WriteLine("优化选项获取成功");
}

设置优化标志

使用 SetFlag() 方法设置优化标志,多个标志可通过按位或 (|) 组合:

c#
// 设置单个标志
optimizeOption.SetFlag(CPDF_OPTIMIZE_FLAG.OPTIMIZE_FLAG_RMNOTUSE);

// 组合多个标志
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);

// 获取当前标志
CPDF_OPTIMIZE_FLAG currentFlags = optimizeOption.GetFlag();

CPDF_OPTIMIZE_FLAG 优化标志说明

标志说明
OPTIMIZE_FLAG_RMNOTUSE1移除未使用的资源和元素
OPTIMIZE_FLAG_RMEPTOBJ1<<1移除空对象
OPTIMIZE_FLAG_RMSPEATTR1<<2移除特殊属性
OPTIMIZE_FLAG_RMEMBFONT1<<3优化嵌入字体的内存使用
OPTIMIZE_FLAG_RMINVALINK1<<4移除无效链接
OPTIMIZE_FLAG_RMINVABK1<<5移除无效书签
OPTIMIZE_FLAG_BCOMPRESSIMAGE1<<6启用图像压缩
OPTIMIZE_FLAG_RMBK1<<7移除书签
OPTIMIZE_FLAG_RMANNOT1<<8移除注释
OPTIMIZE_FLAG_RMFORM1<<9移除表单
OPTIMIZE_FLAG_RMMULMEDIA1<<10移除多媒体内容
OPTIMIZE_FLAG_RMDOCINFO1<<11移除文档信息(作者、标题等)
OPTIMIZE_FLAG_RMMEDTADATA1<<12移除元数据
OPTIMIZE_FLAG_RMOBJDATA1<<13移除对象数据
OPTIMIZE_FLAG_RMFILEATTACHMENT1<<14移除文件附件
OPTIMIZE_FLAG_RMEXTERNCROSSREF1<<15移除外部交叉引用
OPTIMIZE_FLAG_RMOTHERAPPDATA1<<16移除其他应用程序数据
OPTIMIZE_FLAG_RMHIDERLAYER1<<17移除隐藏图层
OPTIMIZE_FLAG_MERGEVISIBLELAYER1<<18合并可见图层
OPTIMIZE_FLAG_USEFLATE1<<19使用 Flate (ZIP) 压缩
OPTIMIZE_FLAG_FLAT_REPLACELZW1<<20将 LZW 压缩替换为 Flate
OPTIMIZE_FLAG_RMUNUSEDTARGET1<<21移除未使用的目标对象
OPTIMIZE_FLAG_OPTIMIZEPAGECONTENT1<<22优化页面内容
OPTIMIZE_FLAG_OPTIMIZEPDFFASTWEBVIEW1<<23启用快速 Web 浏览优化(线性化)
OPTIMIZE_FLAG_RMFORMCOMMITIMPORTRESETACTION1<<24移除表单提交/导入/重置动作
OPTIMIZE_FLAG_RMJSACTION1<<25移除 JavaScript 动作
OPTIMIZE_FLAG_RMPAGETHUMBNAIL1<<26移除页面缩略图
OPTIMIZE_FLAG_RMREPLACEIMAGE1<<27移除并替换图像
OPTIMIZE_FLAG_RMLABEL1<<28移除标签
OPTIMIZE_FLAG_RMPRINTSETTINGS1<<29移除打印设置
OPTIMIZE_FLAG_RMSEARCHINDEX1<<30移除搜索索引