PDFium Component Docs

Zaawansowane API treści strony

Component: TPdf  ·  Unit: PDFium
Pozwala przeglądać i edytować natywną treść strony bez wymagania, aby aplikacje zarządzały uchwytami PDFium czy buforami bitmap

Page object inspection

PageObjectInfo zwraca pojedynczy snapshot TPdfPageObjectInfo zawierający uchwyt, typ obiektu, granice zwykłe i po obrocie, macierz efektywną, stan aktywny, przezroczystość, kolory wypełnienia i konturu, wartości alfa, szerokość konturu, łączenie linii, zakończenie linii, tablicę kreskowania oraz fazę wzoru kreskowania

HasRotatedBounds, HasActiveState i pozostałe pola Has* odróżniają niedostępną wartość natywną od poprawnej wartości zerowej

RotatedBounds przenosi obrócony czworokąt, HasLineJoin i HasLineCap warunkują style łączenia i zakończenia linii, a DashPhase przesuwa początek wzoru kreskowania

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 stosuje wszystkie zaznaczone pola do tego samego natywnego obiektu i regeneruje treść strony jednokrotnie

TransformPageObject składa afiniczną macierz FS_MATRIX z wybranym obiektem

Paths, clip paths, and Form XObjects

Content marks, glyphs, and native object helpers

Character inspection and index mapping

CharacterInfo zwraca kolory wypełnienia i konturu, nazwę czcionki, flagi czcionki PDF, luźne granice glifów, macierz efektywną oraz powiązany uchwyt obiektu tekstowego

CharacterIndexToTextIndex i TextIndexToCharacterIndex konwertują między indeksami znaków PDFium a indeksami w wygenerowanym strumieniu tekstu

Annotation borders and appearance streams

TPdfAnnotation udostępnia promienie i szerokość obramowania przez HasBorder, BorderHorizontalRadius, BorderVerticalRadius i BorderWidth

Pokrycie kolorów rozciąga się na ColorAlpha, InteriorColor i InteriorColorAlpha, metadane oznaczeń są warunkowane przez HasAuthor, HasName, HasSubject, HasModificationDate, HasCreationDate i HasIcon, a gesty atramentu, geometria punktów czworokąta i cele linków są dostępne przez InkList, HasAttachmentPoints, HasLinkUri i LinkUri

Strumienie wyglądu normalnego, po najechaniu i po wciśnięciu są dostępne przez znaczniki HasAppearanceNormal, HasAppearanceRollover i HasAppearanceDown oraz odpowiadające im ciągi AppearanceNormal, AppearanceRollover i AppearanceDown

Podczas odczytu adnotacji te znaczniki identyfikują niepustą zawartość wyglądu: natywne API zwraca ten sam pusty ciąg dla brakującego strumienia i dla pustego strumienia, więc oba raportują False i pozostają nietknięte, gdy rekord jest zapisywany z powrotem; wywołujący nadal może jawnie ustawić znacznik na True, aby zapisać pusty wygląd

Przypisz zaktualizowany rekord adnotacji z powrotem do Annotation[Index], aby zapisać wybrane wartości obramowania lub wyglądu

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 przyjmuje odwracalną macierz FS_MATRIX oraz prostokąt przycinający we współrzędnych urządzenia

Wariant przyjmujący bitmapę TBitmap należącą do wywołującego renderuje bezpośrednio do zgodnego 32-bitowego DIB i sięga po jedną kopię tylko wtedy, gdy nie da się utworzyć zewnętrznej bitmapy PDFium

Renderowanie macierzowe rysuje treść strony i nieinteraktywne adnotacje wybrane przez flagi renderowania, ale nie uruchamia renderera nakładki wypełniania formularzy