PDFium Delphi Component Docs

APIs avançadas de conteúdo de página

Componente: TPdf  ·  Unidade: PDFium
Inspeciona e edita o conteúdo nativo da página sem exigir que os aplicativos gerenciem handles do PDFium ou buffers de bitmap

Page object inspection

PageObjectInfo retorna um snapshot TPdfPageObjectInfo contendo o handle, o tipo de objeto, os limites normais e rotacionados, a matriz efetiva, o estado ativo, a transparência, as cores de preenchimento e de traço, os valores de alfa, a largura do traço, a junção de linha, o terminal de linha, o array de tracejado e a fase de tracejado

HasRotatedBounds, HasActiveState e os demais campos Has* distinguem um valor nativo indisponível de um valor zero válido

RotatedBounds carrega o quadrilátero rotacionado, HasLineJoin e HasLineCap condicionam os estilos de junção e de terminal, e DashPhase desloca o início do padrão de tracejado

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 todos os campos selecionados ao mesmo objeto nativo e regenera o conteúdo da página uma única vez

TransformPageObject compõe uma FS_MATRIX afim com o objeto selecionado

Paths, clip paths, and Form XObjects

Content marks, glyphs, and native object helpers

Character inspection and index mapping

CharacterInfo retorna as cores de preenchimento e de traço, o nome da fonte, os flags de fonte PDF, os limites amplos do glifo, a matriz efetiva e o handle do objeto de texto associado

CharacterIndexToTextIndex e TextIndexToCharacterIndex convertem entre índices de caracteres do PDFium e índices no fluxo de texto gerado

Annotation borders and appearance streams

TPdfAnnotation expõe os raios e a largura da borda por meio de HasBorder, BorderHorizontalRadius, BorderVerticalRadius e BorderWidth

A cobertura de cores se estende a ColorAlpha, InteriorColor e InteriorColorAlpha, os metadados de marcação são condicionados por HasAuthor, HasName, HasSubject, HasModificationDate, HasCreationDate e HasIcon, e gestos de tinta, geometria de quad-points e destinos de links são expostos por meio de InkList, HasAttachmentPoints, HasLinkUri e LinkUri

Os fluxos de aparência normal, rollover e down estão disponíveis por meio das sentinelas HasAppearanceNormal, HasAppearanceRollover e HasAppearanceDown e suas strings correspondentes AppearanceNormal, AppearanceRollover e AppearanceDown

Ao ler uma anotação, essas sentinelas identificam conteúdo de aparência não vazio: a API nativa retorna a mesma string vazia para um fluxo ausente e para um fluxo vazio, então ambos reportam False e ficam intocados quando o record é gravado de volta; o chamador ainda pode definir explicitamente uma sentinela como True para gravar uma aparência vazia

Atribua o registro de anotação atualizado de volta a Annotation[Index] para gravar valores selecionados de borda ou de aparência

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 aceita uma FS_MATRIX invertível e um retângulo de recorte em coordenadas de dispositivo

A sobrecarga que recebe um TBitmap de propriedade do chamador renderiza diretamente em um DIB de 32 bits compatível e recorre a uma única cópia somente quando um bitmap externo do PDFium não pode ser criado

A renderização por matriz desenha o conteúdo da página e as anotações não interativas selecionadas por meio de render flags, mas não invoca o renderizador de sobreposição de preenchimento de formulários