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;
O método prepara o documento atual através do PDFium, aplica todos os pares número-de-objeto/visibilidade pedidos à configuração selecionada, acrescenta a menor revisão de objetos e de cross-reference necessária e depois reabre o resultado através de validação estrita antes de o copiar para o destino do chamador
Os arrays de configuração /ON e /OFF são escritos para todos os grupos, e os dicionários Usage de OCG existentes recebem um estado explícito para Options.Usage, porque a renderização nativa do PDFium dá a esses valores precedência sobre os arrays de configuração
TPdfOptionalContentConfigureOptions.Default seleciona a configuração 0 e a utilização View, impõe os radio groups e remove regras de estado automático que pudessem sobrepor-se ao resultado pedido
AllowSignedDocument=True porque alterar o conteúdo visível pode invalidar a cobertura ou a política da assinaturavar
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;