PDFium Delphi Component Docs

API avanzadas de contenido de página

Componente: TPdf  ·  Unidad: PDFium
Inspecciona y edita el contenido nativo de página sin exigir que las aplicaciones gestionen manejadores de PDFium ni búferes de mapas de bits

Inspección de objetos de página

PageObjectInfo devuelve una instantánea TPdfPageObjectInfo que contiene el manejador, el tipo de objeto, los límites normal y rotado, la matriz efectiva, el estado activo, la transparencia, los colores de relleno y trazo, los valores de alfa, el ancho de trazo, la unión de línea, el extremo de línea, la matriz de guiones y la fase de guiones

HasRotatedBounds, HasActiveState y los demás campos Has* distinguen un valor nativo no disponible de un valor cero válido

RotatedBounds lleva el cuadrilátero rotado, HasLineJoin y HasLineCap condicionan los estilos de unión y extremo, y DashPhase desplaza el inicio del patrón de guiones

Edición de objetos de página por lotes

Info := Pdf1.PageObjectInfo(0);
Info.StrokeWidth := 4;
SetLength(Info.DashArray, 2);
Info.DashArray[0] := 8;
Info.DashArray[1] := 4;
Pdf1.UpdatePageObject(0, Info, [pocStrokeWidth, pocDashPattern]);

UpdatePageObject aplica cada campo seleccionado al mismo objeto nativo y regenera el contenido de la página una sola vez

TransformPageObject compone una FS_MATRIX afín con el objeto seleccionado

Rutas, rutas de recorte y Form XObjects

Marcas de contenido, glifos y auxiliares de objetos nativos

Inspección de caracteres y asignación de índices

CharacterInfo devuelve los colores de relleno y trazo, el nombre de la fuente, las banderas de fuente PDF, los límites imprecisos del glifo, la matriz efectiva y el manejador del objeto de texto asociado

CharacterIndexToTextIndex y TextIndexToCharacterIndex convierten entre los índices de caracteres de PDFium y los índices del flujo de texto generado

Bordes de anotaciones y flujos de apariencia

TPdfAnnotation expone los radios y el ancho del borde mediante HasBorder, BorderHorizontalRadius, BorderVerticalRadius y BorderWidth

La cobertura de color se extiende a ColorAlpha, InteriorColor y InteriorColorAlpha, los metadatos de marcado están condicionados por HasAuthor, HasName, HasSubject, HasModificationDate, HasCreationDate y HasIcon, y los gestos de tinta, la geometría de cuadripuntos y los destinos de enlace se exponen mediante InkList, HasAttachmentPoints, HasLinkUri y LinkUri

Los flujos de apariencia normal, de paso del cursor y de pulsación están disponibles mediante los centinelas HasAppearanceNormal, HasAppearanceRollover y HasAppearanceDown y sus cadenas correspondientes AppearanceNormal, AppearanceRollover y AppearanceDown

Al leer una anotación, estos centinelas identifican contenido de apariencia no vacío: la API nativa devuelve la misma cadena vacía para un flujo ausente y para un flujo vacío, de modo que ambos informan False y se dejan intactos cuando el registro se escribe de vuelta; quien llama todavía puede establecer explícitamente un centinela en True para escribir una apariencia vacía

Asigne el registro de anotación actualizado de vuelta a Annotation[Index] para escribir los valores seleccionados de borde o apariencia

Diagnósticos de la biblioteca nativa, anotaciones y formularios

Miniaturas y transformaciones afines de página

Renderizado con matrices

Matrix.a := 0.5;
Matrix.b := 0;
Matrix.c := 0;
Matrix.d := -0.5;
Matrix.e := 0;
Matrix.f := 421;
Clip.Left := 0;
Clip.Top := 0;
Clip.Right := 300;
Clip.Bottom := 421;
Bitmap := Pdf1.RenderPageWithMatrix(300, 421, Matrix, Clip);

RenderPageWithMatrix acepta una FS_MATRIX invertible y un rectángulo de recorte en coordenadas de dispositivo

La sobrecarga que recibe un TBitmap propiedad del llamador renderiza directamente en un DIB compatible de 32 bits y recurre a una sola copia solo cuando no puede crearse un mapa de bits externo de PDFium

El renderizado con matrices dibuja el contenido de la página y las anotaciones no interactivas seleccionadas mediante las banderas de renderizado, pero no invoca el renderizador de superposición de llenado de formularios