PDFium Delphi Component Docs

API de contenido avanzado de página

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

Page object inspection

PageObjectInfo devuelve una instantánea TPdfPageObjectInfo que contiene el handle, 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 alfa, el ancho de trazo, la unión de línea, el remate de línea, el patrón 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 transporta el cuadrilátero rotado, HasLineJoin y HasLineCap condicionan los estilos de unión y remate, y DashPhase desplaza el inicio del patrón de guiones

Batched page object editing

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

Paths, clip paths, and Form XObjects

Content marks, glyphs, and native object helpers

Character inspection and index mapping

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

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

Annotation borders and appearance streams

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

La cobertura de colores 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, rollover y down están disponibles mediante los centinelas HasAppearanceNormal, HasAppearanceRollover y HasAppearanceDown y sus correspondientes cadenas 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, así que ambos reportan False y se dejan intactos cuando el registro se escribe de vuelta; quien llama igualmente puede fijar un centinela en True de forma explícita 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

Native library, annotation, and form diagnostics

Thumbnails and affine page transforms

Matrix rendering

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 de quien llama renderiza directamente en un DIB compatible de 32 bits y recurre a una sola copia solo cuando no se puede crear un mapa de bits externo de PDFium

El renderizado con matriz 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