PDFium Delphi Component Docs

Расширенные API содержимого страницы

Компонент: TPdf  ·  Модуль: PDFium
Позволяет проверять и изменять нативное содержимое страницы, не требуя от приложений управления дескрипторами PDFium или буферами растровых изображений

Page object inspection

PageObjectInfo возвращает снимок TPdfPageObjectInfo, содержащий дескриптор, тип объекта, обычные и повёрнутые границы, эффективную матрицу, состояние активности, прозрачность, цвета заливки и обводки, значения альфа, толщину обводки, соединение линий, завершение линий, массив штрихов и фазу штрихов

HasRotatedBounds, HasActiveState и другие поля Has* отличают недоступное нативное значение от корректного нулевого

RotatedBounds передаёт повёрнутый четырёхугольник, HasLineJoin и HasLineCap показывают доступность стилей соединения и завершения линий, а DashPhase смещает начало узора штрихов

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 применяет каждое выбранное поле к тому же нативному объекту и один раз регенерирует содержимое страницы

TransformPageObject компонует аффинную FS_MATRIX с выбранным объектом

Paths, clip paths, and Form XObjects

Content marks, glyphs, and native object helpers

Character inspection and index mapping

CharacterInfo возвращает цвета заливки и обводки, имя шрифта, флаги шрифта PDF, свободные границы глифа, эффективную матрицу и связанный дескриптор текстового объекта

CharacterIndexToTextIndex и TextIndexToCharacterIndex преобразуют индексы символов PDFium в индексы сгенерированного текстового потока и обратно

Annotation borders and appearance streams

TPdfAnnotation открывает радиусы и ширину рамки через HasBorder, BorderHorizontalRadius, BorderVerticalRadius и BorderWidth

Поддержка цвета распространяется на ColorAlpha, InteriorColor и InteriorColorAlpha, доступность метаданных разметки показывают флаги HasAuthor, HasName, HasSubject, HasModificationDate, HasCreationDate и HasIcon, а жесты чернил, геометрия четырёхугольников и цели ссылок открываются через InkList, HasAttachmentPoints, HasLinkUri и LinkUri

Потоки внешнего вида normal, rollover и down доступны через признаки HasAppearanceNormal, HasAppearanceRollover и HasAppearanceDown и соответствующие им строки AppearanceNormal, AppearanceRollover и AppearanceDown

При чтении аннотации эти признаки идентифицируют непустое содержимое внешнего вида: нативный API возвращает одну и ту же пустую строку и для отсутствующего потока, и для пустого, поэтому оба сообщают False, а при сохранении записи обратно эти потоки остаются нетронутыми; вызывающий код по-прежнему может явно установить признак в True, чтобы записать пустой внешний вид

Присвойте обновлённую запись аннотации обратно Annotation[Index], чтобы записать выбранные значения рамки или внешнего вида

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 принимает обратимую FS_MATRIX и прямоугольник отсечения в координатах устройства

Перегрузка, принимающая TBitmap во владении вызывающей стороны, рисует непосредственно в совместимый 32-битный DIB и возвращается к одному копированию, только когда внешний PDFium bitmap создать нельзя

Матричная отрисовка рисует содержимое страницы и неинтерактивные аннотации, выбранные флагами рендеринга, но не вызывает наложенный рендерер заполнения форм