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;
El método prepara el documento actual a través de PDFium, aplica cada par solicitado de número de objeto y visibilidad a la configuración seleccionada, agrega la revisión mínima necesaria de objetos y de referencias cruzadas y luego reabre el resultado mediante validación estricta antes de copiarlo al destino del llamador
Los arreglos /ON y /OFF de la configuración se escriben para todos los grupos, y los diccionarios Usage de OCG existentes reciben un estado explícito para Options.Usage, porque el renderizado nativo de PDFium da a esos valores precedencia sobre los arreglos de configuración
TPdfOptionalContentConfigureOptions.Default selecciona la configuración 0 y el uso View, aplica los grupos de radio y elimina las reglas de estado automático que podrían anular el resultado solicitado
AllowSignedDocument=True porque cambiar el contenido visible puede invalidar la cobertura o la política de la firmavar
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;