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 конфигурации записываются для всех групп, а существующие словари Usage OCG получают явное состояние для 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;