function SaveAsOptionalContentConfigured(Stream: TStream;
const Changes: TPdfOptionalContentStateChanges;
const Options: TPdfOptionalContentConfigureOptions;
out Report: TPdfOptionalContentConfigureReport;
AllowSignedDocument: Boolean = False): Boolean; overload;
function SaveAsOptionalContentConfigured(const FileName: string;
const Changes: TPdfOptionalContentStateChanges;
const Options: TPdfOptionalContentConfigureOptions;
out Report: TPdfOptionalContentConfigureReport;
AllowSignedDocument: Boolean = False): Boolean; overload;
此方法先透過 PDFium 暫存目前文件,將每個要求的物件編號與可見度配對套用到選定的設定,附加所需的最小物件與交互參照修訂版,接著以嚴格驗證重新開啟結果,再複製到呼叫端的目的地
設定的 /ON 與 /OFF 陣列會為所有群組寫入,而既有的 OCG Usage 字典會依 Options.Usage 取得明確狀態,因為原生 PDFium 渲染會讓這些值優先於設定陣列
TPdfOptionalContentConfigureOptions.Default 會選擇設定 0 與 View 用途、強制執行單選群組,並移除可能覆寫所要求結果的自動狀態規則
AllowSignedDocument=True,因為變更可見內容可能使簽章涵蓋範圍或政策失效var
Changes: TPdfOptionalContentStateChanges;
Options: TPdfOptionalContentConfigureOptions;
Report: TPdfOptionalContentConfigureReport;
begin
SetLength(Changes, 1);
Changes[0].GroupObjectNumber := 12;
Changes[0].Visible := False;
Options := TPdfOptionalContentConfigureOptions.Default;
Pdf1.SaveAsOptionalContentConfigured('C:\Layers.pdf', Changes, Options, Report);
end;