PDFium Delphi Component Docs

Método SaveAsRedacted

Componente: TPdf  ·  Unidad: PDFium
Aplica anotaciones de tachado PDF a una instantánea aislada y escribe un resultado limpio de revisión única sin modificar el documento cargado

Sintaxis

function SaveAsRedacted(Stream: TStream;
  const Options: TPdfRedactionOptions;
  out Report: TPdfRedactionReport): Boolean; overload;

function SaveAsRedacted(const FileName: string;
  const Options: TPdfRedactionOptions;
  out Report: TPdfRedactionReport): Boolean; overload;

Descripción

SaveAsRedacted captura el documento actual en una instantánea aislada de acceso aleatorio, abre esa instantánea como un TPdf separado y procesa cada rectángulo de anotación /Redact

Las opciones predeterminadas activan PreservePartialObjects y PreserveComplexObjects para conservar la geometría segura admitida; este perfil acotado reconstruye texto a partir de fragmentos de caracteres conservados, recorta trazados con relleno sólido y borra los píxeles que intersectan en imágenes afines

Si existe alguna anotación de redaction, el perfil detallado expande todas las instancias Form XObject de todas las páginas, incluidas las páginas sin redaction, antes de aplicar las eliminaciones; se componen las transformaciones de instancia y la poda de recursos puede eliminar después los flujos Form compartidos originales

Active PreservePartialObjects := False para eliminar completos los objetos que intersectan, o manténgalo activado y use PreserveComplexObjects := False para el perfil más sencillo de fragmentación de texto, rectángulos alineados con los ejes e imágenes alineadas con los ejes; las comprobaciones de seguridad del origen se aplican a los tres perfiles

El método elimina todas las anotaciones de redaction, puede eliminar otras anotaciones que intersecten, elimina las anotaciones de adjuntos en páginas redactadas, borra los adjuntos incrustados nativos y ejecuta la reescritura saneada que retira /AF del catálogo, contenido activo, formularios, metadatos y objetos inalcanzables

Después de regenerar el contenido de la página, una poda precisa de recursos examina los ámbitos de recursos de página, Form XObject, patrón, apariencia, herencia y anidados, y elimina solo los nombres sin usar antes de descartar los objetos inalcanzables

La salida tiene una sola revisión limpia, sin revisiones anteriores del documento, y el origen cargado permanece intacto; una semántica de origen o una geometría detallada no admitidas abortan la operación en vez de producir una redaction parcial

Opciones

Las opciones anteriores de Form, trazados, imágenes, geometría y tolerancia se validan y usan en el perfil detallado; no aumentan los presupuestos independientes de inspección del origen

Informe

TPdfRedactionReport devuelve RedactionCount, RedactedPageCount, ScannedObjectCount, RemovedObjectCount, RemovedAnnotationCount, RemovedAttachmentCount, OverlayCount, SplitTextObjectCount, SplitPathObjectCount, SplitImageObjectCount, PreservedFragmentCount, los recuentos de bytes, los SanitiseReport y ResourcePruneReport anidados, Succeeded y ErrorMessage

El trabajo detallado añade ExpandedFormCount, ScannedFormChildCount, FlattenedCurveCount, GeneratedPathPointCount, MaskedImageCount, ScannedImagePixelCount, MaskedImagePixelCount, PixelIntersectionTestCount y GeometryOperationCount; CurveTolerancePdfPoints registra la tolerancia configurada después de un procesamiento correcto

ScannedFormChildCount cuenta los objetos nativos visitados durante la expansión, incluidas las instancias Form raíz, y GeneratedPathPointCount incluye puntos intermedios de recorte y puntos de curvas aplanadas

MaskedImagePixelCount cuenta los píxeles cuyos componentes completos de color y alfa se han borrado, mientras que PreservedFragmentCount cuenta objetos de sustitución, no píxeles conservados ni contornos de polígonos; los contadores de una operación fallida pueden ser parciales y no implican una salida confirmada

Límite de seguridad

Ejemplo

var
  Options: TPdfRedactionOptions;
  Report: TPdfRedactionReport;
begin
  Options := TPdfRedactionOptions.Default;
  Options.FillColor := clBlack;
  if not Pdf1.SaveAsRedacted('C:\redacted.pdf', Options, Report) then
    raise Exception.Create(Report.ErrorMessage);
end;

Véase también

SaveAsSanitised, SaveAsReachable, CreateAnnotation, Helpers geométricos FPdfRedaction