On Windows, use VCL or the Lazarus Windows widget set. Native Free Pascal/LCL targets use Linux Qt6 or macOS Cocoa and a matching PDFium shared library; native LCL setup explains toolchain and runtime requirements. The Delphi/C++Builder VCL wrapper remains a Windows option; native Delphi macOS crypto and timestamp helpers are qualified separately from that visual wrapper
| Method | Description |
CreateDocument | Create a new empty PDF document |
LoadDocument(Data: TMemoryStream; Buffered: Boolean = True) | Load PDF document from memory stream |
LoadDocument(Data: Pointer; Size: Integer; Buffered: Boolean = True) | Load PDF document from memory buffer |
LoadDocument | Load PDF document from FileName |
LoadDocument(const Data: TBytes; Buffered: Boolean = True) | Load PDF document from TBytes |
LoadCustomDocument(AStream: TStream; AOwnsStream: Boolean = False) | Stream a PDF document from any TStream via FPDF_LoadCustomDocument; PDFium pulls blocks on demand instead of copying the entire file into memory. AOwnsStream = True transfers stream lifetime to the TPdf instance |
TPdfLoadOptions, TPdfLoadReport, LastLoadReport | Select compatible, strict, or recovery loading and inspect bounded xref audit evidence |
SaveAsRepaired | Write a full single-revision copy and independently strict-load it before delivery |
TPdfRandomAccessStore | Thread-safe seekable storage with positioned I/O and one-way spill from bounded memory to private delete-on-close temporary storage |
SaveMemoryLimit, SaveTemporaryDirectory, LastSaveSpillCount, LastSaveLargestMemoryBuffer | Configure and measure bounded working storage used by TPdf save staging |
SaveAs(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean | Save document to stream with optional compression and explicit PDF 1.3 through PDF 1.7 conformance checks; encrypted explicit-version output and pv13 with saIncremental raise EPdfError |
SaveAs(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean | Atomically save document to file with optional compression and explicit PDF 1.3 through PDF 1.7 conformance checks; a failed normalisation or validation leaves an existing target unchanged |
SaveAsLinearized(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean | Write Annex F Fast Web View output with first-page grouping and verified page-offset and shared-object hint tables |
SaveAsLinearized(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean | Atomically write Fast Web View output through a same-directory temporary file |
SaveAsObjectStream(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean | Write bounded PDF 1.5+ object streams with a complete type-2 xref stream |
SaveAsObjectStream(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean | Atomically write modern object-stream output through a same-directory temporary file |
SaveAsNormalizedContent(Stream: TStream; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean | Write normalised and coalesced logical page content with bounded syntax validation |
SaveAsNormalizedContent(const FileName: string; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean | Atomically write normalised-content output through a same-directory temporary file |
SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean | Rewrite the document as a single clean revision keeping only the objects reachable from the catalog and trailer /Info |
SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean | Atomically write a pruned single-revision copy through a same-directory temporary file |
SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean | Rewrite the document sweeping unreachable objects and merging compatible fonts, images, and form XObjects onto one representative |
SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean | Atomically write a deduplicated single-revision copy through a same-directory temporary file |
SaveAsFlateRecompressed(Stream: TStream; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean | Rewrite the document re-encoding FlateDecode streams at maximum compression when the saving clears a caller threshold |
SaveAsFlateRecompressed(const FileName: string; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean | Atomically write a Flate-recompressed copy through a same-directory temporary file |
SaveAsInlineImagesExternalised(Stream: TStream; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean | Rewrite the document extracting BI/ID/EI inline images into reusable XObjects and replacing inline blocks with Do operators |
SaveAsInlineImagesExternalised(const FileName: string; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean | Atomically write an externalised copy through a same-directory temporary file |
SaveAsReproducible(Stream: TStream; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean | Rewrite the document stripping non-deterministic timestamps and /ID so repeated saves are byte-identical |
SaveAsReproducible(const FileName: string; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean | Atomically write a reproducible copy through a same-directory temporary file |
ExportObjectGraph(Stream: TStream; const Options: TPdfObjectGraphInspectOptions; out Report: TPdfObjectGraphReport): Boolean | Export active direct and object-stream values as bounded typed JSON with optional encoded-stream SHA-256 digests |
SaveAsObjectGraphPatched(Stream: TStream; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean | Apply transactional typed top-level dictionary patches and strict-load the staged result before delivery |
SaveAsObjectGraphPatched(const FileName: string; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean | Atomically replace a file after the complete object-graph patch transaction succeeds |
ExportObjectGraph / SaveAsObjectGraphPatched object-graph envelope | Object-graph inspection and patching model page shared by both methods, covering the versioned pdf-object-graph-v1 envelope and transactional patches verified by strict loading |
InspectOptionalContent(out Inventory: TPdfOptionalContentInventory; Usage: TPdfOptionalContentUsage = ocuView; ConfigurationIndex: Integer = -1): Boolean | Read the optional-content model and effective native rendering state |
SaveAsOptionalContentConfigured(Stream: TStream; const Changes: TPdfOptionalContentStateChanges; const Options: TPdfOptionalContentConfigureOptions; out Report: TPdfOptionalContentConfigureReport; AllowSignedDocument: Boolean = False): Boolean | Write and strictly verify caller-selected optional-content state |
BeginEditTransaction(const LabelText: WString = ''; AllowSignedDocument: Boolean = False) | Start an atomic document edit transaction from a reproducible native snapshot |
CommitEditTransaction: Boolean | Store the changed transaction as a bounded SHA-256-chained bidirectional delta |
RollbackEditTransaction | Restore the pre-transaction document without adding an undo entry |
BeginPageObjectEditTransaction(AllowSignedDocument: Boolean = False) | Start an atomic page-scoped native object mutation batch |
CommitPageObjectEditTransaction: Boolean | Generate page content once and commit all successful native mutations |
RollbackPageObjectEditTransaction | Restore the validated pre-batch document snapshot |
PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus | Report transaction state, page, mutation count, and content-generation count |
BeginPageObjectEditTransaction / CommitPageObjectEditTransaction / RollbackPageObjectEditTransaction / PageObjectEditTransactionStatus | Atomic page-scoped edit transaction model covering the bounded snapshot, batched native mutations, a single content regeneration pass, and rollback |
UndoEdit: Boolean | Apply and verify the inverse delta at the current journal position |
RedoEdit: Boolean | Apply and verify the forward delta after the current journal position |
EditCanUndo: Boolean | Report whether a committed document transaction can be undone |
EditCanRedo: Boolean | Report whether an undone document transaction can be redone |
ClearEditJournal | Release committed edit history while keeping the current document state |
ConfigureEditJournal(const Options: TPdfEditJournalOptions) | Set entry, stored-delta, and snapshot limits |
GetEditJournalInfo: TPdfEditJournalInfo | Read journal position, labels, fingerprints, limits usage, and undo or redo availability |
ExportEditJournal(Stream: TStream) | Write the portable bounded journal format |
ImportEditJournal(Stream: TStream; ApplyRecordedPosition: Boolean = True; AllowSignedDocument: Boolean = False) | Validate and replay a journal only against its root or recorded fingerprint |
SaveRecoverySnapshot | Write a checksummed recovery package containing source fingerprints and the verified edit journal |
RestoreRecoverySnapshot | Restore a recovery package only after checksum, source, journal, and result verification |
InspectRecoverySnapshot | Read recovery metadata and validate the package without applying edits |
EnableRecoveryAutosave(const FileName: string) | Atomically refresh an explicit recovery file after commit, undo, or redo |
DisableRecoveryAutosave | Stop commit-driven recovery writes without deleting an existing package |
RecoveryAutosaveFileName: string | Read the absolute recovery autosave path or an empty string when disabled |
ValidatePagePlan(const Plan: TPdfPagePlan; ImportedSource: TPdf = nil; AllowSignedDocument: Boolean = False): TPdfPagePlanValidationReport | Compile a page operation into an exact old-to-new map and report navigation, label, form, structure, imported-feature, and signature effects without changing either document |
GenerateLayout(Layout: TPdfLayoutDocument; out Plan: TPdfLayoutPlan; AllowSignedDocument: Boolean = False): Boolean | Measure and paginate first, then atomically append native text, rules, table borders, images, pages, and reusable page XObjects with stable page totals |
GeneratePagedLayout(Layout: TPdfLayoutDocument; PagedPlan: TPdfLayoutPagedPlan; out Plan: TPdfLayoutPlan; AllowSignedDocument: Boolean = False): Boolean | Stream commands to seekable storage, materialise one bounded page array at a time, and append PDFium pages sequentially |
GenerateTaggedLayout(Layout: TPdfLayoutDocument; out Plan: TPdfLayoutPlan; const Language: string = 'en-US'): Boolean | Generate a new semantic layout document with native MCIDs, a complete structure and parent tree, alternate text, table header associations, and tagged links |
TPdfLayoutDocument.AddLink / AddSemanticNode / SetLastItemSemantics | Attach URI links, non-visual semantic containers, and role, parent, ID, language, alternate-text, list, and table metadata to layout items |
TPdfLayoutDocument.AddTable(Table: TPdfLayoutTable) | Snapshot and paginate a table with captions, repeated headers, splittable rows, merged cells, links, borders, and continuous tagged semantics |
TPdfLayoutDocument.AddCachedNode(Node: TPdfLayoutCachedNode; Height: Single = 0; Width: Single = 0) | Build a lazy node once, cache its measured plan, and emit repeated placements from one native Form XObject template |
BeginIncrementalSave(AllowSignedDocument: Boolean = False) | Start a dirty-object revision session from a stable semantic snapshot while retaining the exact encrypted or unencrypted source prefix |
CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean | Append only changed or new indirect objects, inheriting encrypted security parameters and validating the complete revision chain |
CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean | Durably flush, reopen, validate, and atomically replace through a same-directory side file while rolling session state back after failure |
EndIncrementalSave | Release the baseline and accumulated revision state |
SaveAsEncrypted(const FileName: string; const Options: TPdfEncryptOptions): Boolean | Saves the active PDF with AESV3-CBC or ISO/TS 32003 AESV4-GCM encryption |
SaveAsEncryptedToStream(Stream: TStream; const Options: TPdfEncryptOptions): Boolean | Writes the encrypted PDF output into any seekable TStream without staging through disk |
ValidatePdfMac(const Password: AnsiString): TPdfMacValidationResult | Validates an ISO/TS 32004 standalone PDF MAC against the original loaded source bytes |
SaveAsWithAssociateFiles(const FileName: string; const Options: TAssocFilesOptions): Boolean | Saves the active PDF to a file path while injecting associated files into the catalog or pages conforming to ISO 32000-2 §7.11.4 |
SaveAsWithAssociateFilesToStream(Stream: TStream; const Options: TAssocFilesOptions): Boolean | Writes the PDF output with injected associated files into any seekable TStream without staging through disk |
CompareWith(Other: TPdf; const Options: TPdfDocumentDiffOptions; out Report: TPdfDocumentDiffReport): Boolean | Compares page count, geometry, rotation, extracted text, and tolerance-aware rendered pixels |
ImportImposed(const Options: TPdfImpositionOptions; out Plan: TPdfImpositionPlan; out Report: TPdfImpositionExecutionReport): TPdf | Builds N-up or booklet output through batched native PDFium composition and reports execution counts |
ImportPages(Pdf: TPdf; const Range: string; PageNumber: Integer = 1): Boolean | Import pages from another PDF document. Range format: '1,3,5-7' |
ImportPreferences(Pdf: TPdf): Boolean | Import viewer preferences from another PDF |
The v3.125.3 ordinary Windows libraries report failed final buffered writes as failed saves, in line with the v3.125.2 V8 repair. The Windows V8 libraries preserve edited text in packet-array and supported single-stream XDP saves, including original whitespace and supplementary Unicode. In v3.126.0, supported single-stream XDP also retains comments and processing instructions outside replaced live datasets and form packets, including UTF-8 and BOM-marked UTF-16 inputs; invalid input encoding, incomplete tags, invalid entity references, malformed processing instructions, comments or processing instructions inside replaced packets, DTD declarations and XMLDSig are rejected. These are bounded save guards, not a complete XML validator. Other supported packets and root namespaces are retained semantically; arbitrary external-form conformance and byte-identical XML serialisation remain outside the verified scope
Windows viewer copy, cut and form paste use a bounded 100ms clipboard-open retry budget in v3.126.0 without pumping UI messages; unavailable clipboard access still returns failure, and a failed cut leaves the original field text and selection intact
In v3.126.2, full XFA viewing keeps the default text-selection settings safe, replaces selected field text during keyboard input and refreshes page handles once a dynamic layout callback returns; read-only fields and AllowFormEvents retain their input restrictions
The v3.126.2 Windows V8 save guards validate attribute syntax, duplicate attributes, qualified names, namespace scopes and XML declarations before altering single-stream XDP; XML schemas, DTD, XMLDSig, XML 1.1 and supplementary-plane names remain outside the supported scope
The v3.126.1 Windows V8 libraries also refresh loaded input-widget geometry when dynamic layout moves a field, keeping its text and native input hit area aligned with the new location. The required repository fixture verifies instance addition, removal and height changes through native events; arbitrary external forms and foreground viewer input remain separate acceptance work
| API | Description |
function AnalyzeSignatureRevisions: TPadesRevisionAnalysisReport | Reconstructs the original revision chain and classifies later object changes for every embedded signature |
function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport | Builds exportable multi-signature evidence from one retained original-byte capture |
property About: string | Reports PDFium Delphi Component component version information for TPdf |
Active | Opens or closes the selected PDF document |
function AddAnnotationFileAttachment(AnnotIndex: Integer; const Name: WString; const FileData: TBytes): Boolean | Attaches an embedded file to an existing annotation and writes its contents in one call |
procedure AddImage(const FileName: string; X, Y, Width, Height: Double) | Insert an image from a file into the current PDF page. Internally uses TPicture.LoadFromFile, so any image format registered with the VCL or LCL graphics units (BMP, PNG via Vcl.Imaging.PngImage / LCL TPortableNetworkGraphic, JPG, etc.) is accepted. Coordinates are in PDF user space (origin at the page lower-left); Width and Height are the placement size in user units, not the source image pixel size |
function AddJpegImage(JpegImage: TStream; X, Y, Width, Height: Double): Boolean | Add JPEG image to the current PDF page using the specified coordinates |
procedure AddPage(PageNumber: Integer; Width, Height: Double) | Creates a new blank page with the given dimensions in points |
AddPath | Commits the accumulated MoveTo/LineTo/BezierTo path as a new page object with the requested paint |
procedure AddPathToAnnotation(Index: Integer) | Hands the pending CreatePath path to an ink or stamp annotation instead of to the page content |
procedure AddPicture(Picture: TPicture; X, Y: Double) | Add picture to the current PDF page using the specified coordinates |
function AddPageObjectMark(Index: Integer; const Name: AnsiString; const Params: TPdfContentMarkParams): Integer | Adds a marked-content entry and its initial typed property list to a page object |
PageObjectInfo / AnnotationObjectInfo / PageObjectMarks / PathInfo / TransformPageObject / RenderPageWithMatrix | Advanced page-content and annotation-object inspection, marks, paths, transforms, and text metrics gathered on one overview page |
function SharePageObjectMark(TargetIndex, SourceIndex, SourceMarkIndex: Integer): Boolean | Reuses one native marked-content property mark on another page object |
function AddShapedText(const Text, Font: WString; FontSize: Single; X, Y: Double; out Shaped: TPdfShapedText; Direction: TPdfTextDirection = ptdAuto; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean | Shape bidi and complex-script runs into positioned CID Type 2 glyphs with ToUnicode and logical ActualText semantics |
procedure AddStandardFontText(const Text: WString; StandardFont: TPdfStandardFont; FontSize: Single; X, Y: Double; Color: TColor; Alpha: Byte; Angle: Double = 0.0) | Draws text with one of the 14 standard PDF fonts, embedding no font program |
function AddCidType2Text(const FontData: TBytes; const Glyphs: TPdfCidGlyphs; FontSize: Single; X, Y: Double; const Options: TPdfCidFontOptions; out Report: TPdfCidFontReport; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean | Embed positioned CID Type 2 glyphs with explicit Unicode mappings, optional TrueType subsetting, controlled fallback, and extraction verification |
procedure AddText(const Text, Font: WString; FontSize: Single; X, Y: Double; Color: TColor = clBlack; Alpha: Byte = $FF; Angle: Double = 0.0) | Add text to the current PDF page at the specified position |
Annotation | Indexed property — returns the annotation record at the given index on the current page (subtype, rect, colour, contents, etc.) |
AnnotationCount | Number of annotation objects attached to the currently active page |
function AnnotationObjectCount(Index: Integer): Integer | Counts the page objects an ink or stamp annotation draws itself from |
function AnnotationObjectInfo(Index, ObjectIndex: Integer): TPdfPageObjectInfo | Reads type, bounds, matrix, colours, and line style of one page object owned by an annotation |
property Attachment[Index: Integer]: TBytes | Reads or replaces the raw byte payload of the document-level embedded file at the specified zero-based index. Each slot corresponds to one entry in the PDF EmbeddedFiles name tree defined in section 7.11 of the PDF 1.7 specification |
AttachmentCount | Number of embedded file attachments declared in the document |
property AttachmentDescription[Index: Integer]: WString | Reads or writes the /Desc description of a document-level embedded file |
function AttachmentHasKey(Index: Integer; const Key: WString): Boolean | Tests whether an embedded attachment carries a given file-specification key |
AttachmentName | Returns the Unicode file name registered for the embedded file at the given zero-based index in the document EmbeddedFiles name tree |
property AttachmentRelationship[Index: Integer]: WString | Gives the /AFRelationship name of a document-level embedded file (ISO 32000-2 Table 43), or an empty string when it is absent |
AttachmentType | Returns the registered MIME / subtype string for the embedded file at the specified zero-based index. The value is taken from the file specification dictionary's /Subtype entry as defined in PDF section 7.11.3 |
Author | Returns the value of the /Author entry from the PDF document information dictionary |
BezierTo | Appends a cubic Bezier curve from the current point through control points (X1,Y1) and (X2,Y2) to (X3,Y3) |
Bitmap | Returns a freshly-decoded VCL TBitmap holding the raster data of the specified image object on the current page. The bitmap is newly allocated on each call; the caller owns it and is responsible for calling Free |
BitmapCount | Number of image page objects on the active page, accessible as VCL TBitmap |
Bookmark | Looks up a bookmark by its title string and returns the matching TBookmark record from the document outline tree defined in PDF section 12.3.3 |
BookmarkChildren | Indexed property — returns the immediate child bookmarks of a given parent bookmark node |
BookmarkFrom | Converts a raw FPDF_BOOKMARK handle into a fully populated TBookmark record by reading the title, destination page, and action metadata for that outline node |
Bookmarks | Indexed property — returns the full list of top-level outline (bookmark) entries for the document |
Character | Read-only indexed access to the UTF-16 string form of the character at the given index (typically one code unit, but two for a surrogate pair) |
CharacterAngle | Read-only indexed access to the rotation angle of the character in radians, taking the page CTM into account |
CharacterCount | Number of extractable characters on the currently active page |
CharacterFontSize | Read-only indexed access to the effective font size used to render the character (in PDF points, after CTM scaling) |
CharacterFontWeight | Read-only indexed access to the OS/2 usWeightClass value of the font used (100 = Thin, 400 = Regular, 700 = Bold, 900 = Black) |
CharacterGenerated | Returns True when the character at the specified index was synthesised by PDFium during text extraction rather than being drawn explicitly by the page content stream. Synthetic characters are emitted for ligature expansion, soft hyphenation, and word/line boundary heuristics so search and select-all results read naturally |
function CharacterIndexToTextIndex(Index: Integer): Integer | Maps a character index to its offset in the extracted text, or -1 for generated characters |
function CharacterInfo(Index: Integer): TPdfCharacterInfo | Reads colour, font name and flags, loose bounds, matrix, and owning text object of one character |
function CharacterIndexAtPos(X, Y, ToleranceX, ToleranceY: Double): Integer | Get the index of the character at or near a given position on the page. If no character lies at or near the point, the return value will be -1. If an error occurs, -3 will be returned |
CharacterIsHyphen | Returns True when the character at the specified index is recognised as a soft hyphen used for end-of-line word breaking. Useful when reconstructing words across line wraps without retaining the visible hyphen mark |
CharacterMapError | Returns True when the character at the specified index could not be mapped to a valid Unicode code point. The flag is reported per-character by the PDFium text extractor and lets callers identify code points that are likely incorrect because the originating font lacks a usable ToUnicode CMap or encoding vector |
CharacterOrigin | Read-only indexed access to the origin (baseline-left anchor) of the character in PDF user-space points |
CharacterRectangle | Read-only indexed access to the bounding rectangle of the character in PDF user-space coordinates (origin bottom-left, in points) |
Charcode | Read-only indexed access to the Unicode code point (UCS-4) of the character at the given index |
function ChooseRenderFlags(Scale: Double; DestWidth, DestHeight: Integer): Integer | Picks native FPDF_RENDER_* flags from the final scale and destination size for adaptive image subsampling |
procedure ClearFormFieldFocus | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
procedure ClearPageSceneCache | Clears cached parsed page scenes without changing the active page |
procedure ClearThumbnailCache | Releases retained embedded and rendered thumbnail bitmaps without changing cache limits or telemetry |
ClosePath | Closes the current sub-path by drawing a straight line back to the most recent MoveTo |
Compressed | Controls whether streams in the output PDF are FlateDecode-compressed when SaveAs / Save is called. The post-save compression engine scans the serialised PDF, replaces any uncompressed streams with their zlib-deflated equivalents, and rebuilds the xref table. Already-compressed streams pass through unchanged |
constructor Create(AOwner: TComponent); override | Creates the TPdf component and initialises document, rendering, form, and cache state |
procedure CreateAnnotation(const Annotation: TPdfAnnotation) | Create a new annotation |
CreateAttachment | Adds a new embedded file (attachment) at the document level |
procedure CreateDocument | Closes the current document (if any) and starts a brand-new empty PDF |
procedure CreatePath(X, Y: Single; FillMode: TPdfFillMode = fmNone; FillColor: TColor = clBlack; FillAlpha: Byte = $FF; Stroke: Boolean = True; StrokeColor: TColor = clBlack; StrokeAlpha: Byte = $FF; StrokeWidth: Single = 1.0; LineCap: TPdfLineCap = lcDefault; LineJoin: TPdfLineJoin = ljDefault; BlendMode: TPdfBlendMode = bmDefault) | Create a new path object at an initial position |
CreateXObjectFromPage | Wraps a page from another TPdf as a reusable Form XObject handle that can be stamped into this document any number of times |
CreationDate | Original creation timestamp from the document Info dictionary |
Creator | Name of the originating authoring application stored in the Info dictionary |
property CrossReferenceTableValid: Boolean | Reports whether the loaded document has an intact cross-reference table |
DeleteAnnotation | Removes the annotation at the given index on the current page |
function DeleteAttachment(Index: Integer): Boolean | Removes the embedded file attachment at the given index |
procedure DeletePage(PageNumber: Integer) | Removes the page at PageIndex from the document |
Destination | Returns the TDestination record for the named destination at the specified zero-based index. Named destinations are the indirect targets defined under the document catalog Dests / Names tree as described in PDF section 12.3.2 |
DestinationByName | Looks up a /Names destination by string name and returns its target page / fit-type / coordinates |
DestinationCount | Number of named destinations declared in the document |
function DetectPageSkew(out Report: TPdfSkewReport): Boolean | Measures the tilt of the current page to about 0.1 degrees, with a confidence value |
destructor Destroy; override | Releases document handles, form state, cached fonts, streams, and timers before TPdf is destroyed |
ExportXFDF | Serialises form fields and annotations to UTF-8 XFDF while preserving nested field paths and absent versus explicitly empty values |
function ExportXFDFToStream(Stream: TStream): Integer | Writes every form value and annotation of the document to a stream as XFDF |
function ExtractAttachmentsToStreams(const Destinations: array of TStream; const Options: TPdfAttachmentBatchOptions; out Report: TPdfAttachmentBatchReport; const CancellationToken: IPdfCancellationToken = nil): Boolean | Writes decoded attachments to caller-owned streams under count and byte budgets with cancellation and per-item results |
TPdfAttachmentBatchOptions / TPdfAttachmentBatchReport | Bounded, single-pass attachment batch model for caller-owned metadata enumeration and payload extraction |
ExtractThumbnail(PageNumber: Integer): TBitmap | Decodes the embedded page thumbnail without switching or reloading the active page |
function DeviceToPage(X, Y, Left, Top, Width, Height: Integer; Rotation: TRotation; out PageX, PageY: Double): Boolean | Convert the screen coordinate of a point to page coordinate |
property Document | Native PDFium FPDF_DOCUMENT handle for direct low-level access |
function DocumentReadableContent: TPdfContentFragments | Returns semantic readable content fragments for screen-reader, text-to-speech, and accessibility workflows |
function DocumentReadingUnits: TPdfReadingUnits | Builds sentence-level TPdfReadingUnit records for the whole document readable-content stream |
FileIdentifier | Read-only flag — returns the document file identifier array for the requested identifier slot |
property FileName | Path of the PDF to open; assigning while Active reloads from the new path |
Find | Searches for Pattern starting from PageNum (or the current page if -1) and returns the global character index of the first match |
function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer | Start a search of the specified text. StartIndex is 0-based, -1 is for end of the page. DirectionUp parameter determines direction of this search operation |
function FindNext | Advances the cursor of an in-progress Find session and returns the next matching character index |
function FindPrevious | Reverses the Find cursor by one match |
function CreateDocumentSearch | Creates a lazy document-wide search that returns one match and its page-space rectangles per call |
function FlattenAllPages(nFlag: Integer = FLAT_NORMALDISPLAY): Boolean | Convenience wrapper that flattens every page in the document. Returns True when every page completes with FLATTEN_SUCCESS or FLATTEN_NOTHINGTODO. Recommended workflow: GenerateFormAppearances → FlattenAllPages → SaveAs |
function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer | Flattens annotations and form widgets on the current page into permanent (non-editable) page content. nFlag selects the flattening profile: FLAT_NORMALDISPLAY (0) for screen display or FLAT_PRINT (1) for printed output. Returns one of FLATTEN_SUCCESS, FLATTEN_NOTHINGTODO, or FLATTEN_FAIL. Call GenerateFormAppearances first when flattening filled-in form values |
FlattenPageRotation | Bakes the current /Rotate of every page into the content stream, page boxes, and annotation rectangles, then resets /Rotate to 0 so the visual layout is preserved without relying on the rotation display hint |
function FocusedFormFieldDetails: TPdfFormFieldInfo | Returns TPdfFormFieldInfo for the current logical form field |
function FocusedFormFieldIndex: Integer | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusedFormFieldName: WString | Returns the current logical form field display name, preferring AlternateName and falling back to Name |
function FocusedFormFieldText: WString | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusedFormFieldTextDirection: TPdfFormTextDirection | Reads the focused widget's in-memory text direction through the PDFium FORM_GetTextDirection export |
function FocusedFormOptionSelected(Index: Integer): Boolean | Reports whether one option of the focused list or combo box is selected |
function FocusedFormFieldValue: WString | Returns the current logical form field value by FocusedFormFieldIndex without depending on the interactive caret |
function FocusFormField(Index: Integer): Boolean | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusNextFormField: Integer | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusPreviousFormField: Integer | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
FontAscent | Returns the font's ascent (distance from the baseline to the highest ascender) of a page object's font, expressed in PDF points and scaled to a caller-supplied font size |
FontBaseName | Returns the PostScript base name (the /BaseFont entry from the PDF font dictionary) of the font used by a page object, including any style suffix such as -Bold or ,Italic |
FontData | Read-only indexed access to the raw bytes of the embedded font program (only populated when the font is embedded) |
FontDescent | Returns the font's descent (the distance from the baseline down to the lowest descender) of a page object's font, expressed in PDF points and scaled to a caller-supplied font size |
FontFamilyName | Returns the typographic family name (e.g. Helvetica, Times New Roman, Noto Sans CJK SC) of the font used by a page object on the current page |
property FontFlags[Index: Integer]: Integer | Returns the native PDF font descriptor flags, or -1 when the object has no font |
FontHandle | Returns the native FPDF_FONT handle of the font used by a page object. The handle gives advanced callers direct access to PDFium font APIs not wrapped by the component |
FontIsEmbedded | Indicates whether the font used by a page object is embedded inside the PDF (True) or merely referenced and resolved at view time from the operating system (False) |
FontItalicAngle | Read-only indexed access to the italic angle of the font in degrees (negative for typical italic; 0 for upright) |
FontSize | Returns the rendered font size, in PDF points, of an individual character on the current page. FontSize is an alias for CharacterFontSize retained for backward compatibility |
FontWeight | Returns the CSS-style weight (boldness) of the font used by a page object on the current page. Typical values are 400 for regular and 700 for bold |
FormField | Indexed property — returns one form field on the current page |
FormFieldAt | Read or write the value of the form field located at the given page coordinate |
FormFieldCount | Number of form field widgets on the currently active page |
FormFieldInfo | Full record describing a form field at a given index on the active page |
FormFieldInfoAt | Form field record for the widget located at the given page coordinate |
FormHostCallbacksComplete, FormSelectionRects, OnForm* | Lifetime-safe native form pages plus host-controlled navigation, URI, cursor, value-change, and selection callbacks |
function FormFieldTypeAtPoint(X, Y: Double; out FieldType: TPdfFormFieldType): Boolean | Uses native point hit testing to return the field type without creating an annotation handle |
function FormFieldTabOrder: TPdfIntegerArray | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
property FormFill | Interface that lets your application supply forms-related callbacks (Beep, Invalidate, OutputDocFile, etc.) |
FormHandle | Native PDFium form-fill environment handle attached to the document |
function DetachFormObjectChild(FormIndex, ChildIndex: Integer): FPDF_PAGEOBJECT | Removes a Form XObject child and transfers ownership of its native handle |
function FormObjectChildren(Index: Integer): TPdfPageObjectInfos | Lists the page objects nested inside a Form XObject |
function GetAnnotationFontColor(AnnotIndex: Integer; out Color: TColor): Boolean | Reads the text colour of a form-field widget annotation |
function GetAttachmentStringValue(Index: Integer; const Key: WString): WString | Reads one string entry from the file-specification dictionary of an attachment |
function GetImageObjectRenderedBitmap(Index: Integer): TBitmap | Renders an image object with its mask, colour conversion, and matrix applied |
function GetObjectRenderedStrokePattern(Index: Integer): TBitmap | Rasterises the tiling pattern with which a path object is stroked into a caller-owned bitmap, or returns nil when there is none |
property FormType | Tells you whether the document contains AcroForm fields, XFA, or no forms at all |
procedure GenerateFormAppearances | Regenerates the /AP (appearance stream) for every form widget on every page by rendering each page through FPDF_FFLDraw. This is the recommended companion call to FormField[i] := value assignments — without it, form values may be visible only when the field has focus, and any subsequent flatten operation will silently lose the values. Call after all FormField[] assignments and before SaveAs / FlattenPage / FlattenAllPages |
function GetPageBox | Reads the rectangle of the named page box on the current page |
function GetXfaConfig: TBytes | Retrieves the raw XML bytes of the XFA config packet from the PDF document |
function GetXfaDatasets: TBytes | Retrieves the original XFA datasets XML bytes from the PDF document |
function GetXfaFormPackets: TXfaPacketList | Snapshots all embedded XFA packets in a TXfaPacketList collection |
function GetXfaPacketByName(const Name: string): TBytes | Returns the raw content bytes of the XFA packet identified by name |
function GetXfaPacketContent(Index: Integer): TBytes | Returns the raw content bytes of the XFA packet at the given zero-based index |
function GetXfaPacketCount: Integer | Returns the number of XFA packets embedded in the document |
function GetXfaPacketName(Index: Integer): string | Returns the name of the XFA packet at the given zero-based index |
function GetXfaTemplate: TBytes | Retrieves the raw XML bytes of the XFA template packet from the PDF document |
GrantedPermissions | Returns owner-password permissions as a typed TPdfPermissions set |
HasBookmarkChildren | Returns True when the given outline node has at least one child bookmark |
HasFormFieldAt | Hit-test that returns True when a form field widget covers the given page coordinate |
HasPermission(Permission: TPdfPermission): Boolean | Tests one owner-password permission without manual bit arithmetic |
Image | Indexed property — returns one image page object on the current page (handle + bbox + bit depth + colour space) |
ImageCount | Number of raster image XObjects on the currently active page |
function ImportFDF(const FileName: string): Integer | Applies form field values from an FDF document; a TStream overload is also available |
ImportXFDF | Applies namespace-aware XFDF fields and annotations, including explicit empty values, mixed text and CDATA, and deeply nested field names |
property IncrementalSaveActive: Boolean | Reports whether an incremental save session is currently open |
procedure InsertClipPath(Left, Bottom, Right, Top: Single) | Clips everything drawn on the current page to a rectangle in PDF page units |
procedure InsertObjectAtIndex(StackIndex: Integer; PageObj: Pointer) | Inserts a page object at a chosen depth in the drawing order instead of on top |
class function InspectAvailability(AStream: TStream): TPdfAvailability | Reports linearisation, parse availability, and first page of a PDF stream without loading it |
ImportNPagesToOne | Builds a brand-new TPdf whose pages are NumX×NumY composites of the source document's pages, suitable for N-up printing layouts |
ImportPages | Copies one or more pages from another open TPdf into this document |
ImportPagesByIndex | Imports a specific subset of pages from another TPdf by zero-based index, with control over the insertion point in the current document |
function ImportPreferences(Pdf: TPdf): Boolean | Bit-set controlling how ImportPages copies content (resources, named destinations, comments, etc.) |
function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT | Inserts ONE copy of the page wrapped by a TPdfXObject into the current page of this document, returning the FPDF_PAGEOBJECT so the caller can position / scale / rotate it |
IsTagged | Whether the document declares a structure tree for accessibility |
JavaScriptAction | Indexed property — returns one document-level JavaScript action (name + Type + Source string) |
JavaScriptActionCount | Number of document-level JavaScript actions stored in the PDF |
JavaScriptActions | All document-level JavaScript actions returned as a single dynamic array |
Keywords | Author-supplied keyword list from the document Info dictionary |
Language | Natural language identifier declared in the document catalog |
LineTo | Appends a straight line from the current point to (X, Y) |
LinkAnnotation | Indexed property — returns the explicit /Annot Subtype Link at the given index, including the target action or destination |
LinkAnnotationCount | Number of /Link annotation entries on a specific page |
function LinkAtPoint(X, Y: Double): Boolean | Hit-tests a page-space coordinate against native link annotations through FPDFLink_GetLinkAtPoint |
procedure LoadCustomDocument(AStream: TStream; AOwnsStream: Boolean = False) | Loads a PDF from any seekable TStream using PDFium's on-demand block reader, so multi-GB documents and remote / database-backed sources do not need an up-front in-memory copy |
TPdfRandomAccessStore | Stores seekable content under a memory ceiling, spills to private temporary storage, and supports cursor-independent ReadAt and WriteAt calls |
function TextIndexToCharacterIndex(Index: Integer): Integer | Maps an offset in the extracted text back to the character that produced it |
function TextObjectGlyphOutline(Index, GlyphIndex: Integer; FontSize: Single): TPdfPathSegments | Reads the vector outline of one glyph, normalised so that one em is 1.0 |
function TextObjectGlyphWidth(Index, GlyphIndex: Integer; FontSize: Single): Single | Measures the native glyph advance at a requested font size |
function TextObjectFontSize(Index: Integer): Single | Reads the native font size of one text page object |
procedure SetTextObjectFontSize(Index: Integer; FontSize: Single) | Edits text-object font size without matrix scaling |
procedure LoadDocument | Opens a PDF from a file, byte array, validated memory buffer, or non-nil memory stream |
LastLoadReport | Returns the latest load status, native recovery route, xref validity, bounded audit counters, and typed issues |
SaveAsRepaired | Writes a complete copy and verifies it through an isolated strict load before returning success |
property MetaText | Returns one document Info dictionary value by tag name |
Metadata | Returns the standard title, author, subject, keywords, creator, producer, creation date, and modification date as one record snapshot |
MergeFiles | Merges file-backed source lists with bounded source handles, native page import batches, explicit policies, progress, cancellation, rollback, and a detailed report |
ModifiedDate | Last-modification timestamp recorded in the document Info dictionary |
MovePages | Reorders pages of this document in place by zero-based index, keeping the page count constant |
MoveTo | Starts a new sub-path at the given page coordinate |
ObjectBitmap | Indexed property — returns one image page object as a renderable VCL TBitmap (lossy decoded from JPX/CCITT/etc.) |
ObjectBounds | Tight axis-aligned bounding rectangle of a single page object on the current page, |
ObjectCount | Read-only number of page objects (text, path, image, shading, form) at the current page |
ObjectHandle | Raw PDFium FPDF_PAGEOBJECT pointer for the specified page object, |
ObjectTransparent | Indicates whether a page object participates in PDF transparency — either through |
ObjectType | Returns the category of the page object at the specified index — text, path, image, shading, or form XObject. The classification matches the PDF content-stream operator that produced the object and lets callers iterate the page-object array with a single switch dispatch |
function OptimizeImages(const Options: TPdfImageOptimizeOptions; out Report: TPdfImageOptimizeReport): Boolean | Downsamples page image objects whose effective placement DPI exceeds a caller target through the native bitmap and FPDFImageObj_SetBitmap paths, then leaves the document ready for SaveAs |
function GetFeatureInventory: TPdfFeatureInventory | Scans every page once and returns a unified record of text, path, image, form XObject, and shading object counts alongside document-level facts |
function GetObjectText(Index: Integer): WString | Extracts the text drawn by one text object |
function GetObjectsByType(ObjType: TObjectType): TPdfIntegerArray | Lists the indexes of every page object of one kind on the current page |
function GetPageActionType(EventType: Integer): Integer | Reports the PDFACTION_* type of the page open or close additional action, 0 when there is none |
function GetPageActionURI(EventType: Integer): WString | Reads the URI a page open or close action opens |
function GetTextInReadingOrder(Order: TPdfReadingOrder): WString | Extracts page text in raw content order or sorted into physical reading order |
function GetTextObjectRenderedBitmap(Index: Integer; Scale: Single): TBitmap | Rasterises one text object on its own at the requested scale |
function GetTextRenderMode(Index: Integer): Integer | Reads the FPDF_TEXTRENDERMODE_* mode of a text object, which is how invisible OCR text is told from visible text |
function GetWidgetAdditionalActionJavaScript(AnnotIndex, EventType: Integer): WString | Reads the keystroke, format, validate, or calculate script of a form-field widget |
function AuditActiveContent: TPdfActiveContentAudit | Returns a snapshot of JavaScript action count, embedded files, signatures, XFA form type, and permissions without executing any script or action |
property OnFormFieldEnter | Fired when the form-fill engine gains focus on a form field |
property OnFormFieldExit | Fired when the form-fill engine loses focus on a form field |
property OnJavaScriptResponse | Fired when PDF-embedded JavaScript actions request user interaction |
property OnPageChange | Fired when Pdf.Page is assigned to a different page index |
property OnUnsupportedFeature | Fired when the document uses a PDF feature that PDFium does not implement (e.g. XFA full forms, 3D annotations, multimedia) |
property OnXfaGotoUrl | Fired when navigating link URLs inside dynamic XFA forms |
property OnXfaUriAction | Fired when link URI actions trigger inside dynamic XFA contexts |
function PadesCryptoAvailable: Boolean | Indicates whether the signature cryptographical backend is available on the system |
Page | Native PDFium page handle for the currently active page |
function PageUsesOverprint: Boolean | Queries exact page overprint use when the optional print-output extension supports detection |
function PathInfo(Index: Integer): TPdfPathInfo | Reads fill mode, stroke flag, and segment geometry of a path object |
property PageBounds[Box: TPdfPageBox]: TPdfRectangle | Page-level property — the rectangle for the requested page box (MediaBox/CropBox/BleedBox/TrimBox/ArtBox) |
property PageBox[Box: TPdfPageBox]: TPdfRectangle | Page-level property — reads or writes a specific page-box rectangle on the current page |
property PageCount: Integer | Page-level property — total number of pages in the open document |
property PageMetrics[PageNumber: Integer]: TPdfPageMetrics | Cached dimensions, rotation, label, transparency, and standard page boxes for any page |
property CacheBudgetBytes: Int64 | Sets the unified retained-cache byte ceiling for one TPdf instance |
property CacheGovernor: TPdfCacheGovernor | Returns the owned shared governor for per-kind queries and application-cache coordination |
property CacheGovernorStatistics: TPdfCacheGovernorStatistics | Returns current, peak, pinned, eviction, touch, and rejection telemetry |
property LifecycleActionPolicy: TPdfLifecycleActionPolicy | Selects disabled, explicit-only, or compatible automatic document and page lifecycle action execution |
property PageSceneCacheCapacity: Integer | Maximum number of parsed inactive page scenes retained for indexed rendering |
property PageSceneCacheCount: Integer | Current number of reusable parsed page scenes |
PageHeight | Height of the active page in PDF user-space units (points = 1/72 inch) |
function PageObjectClipPath(Index: Integer): TPdfClipPath | Reads the clip path that limits where one page object may paint |
function PageObjectInfo(Index: Integer): TPdfPageObjectInfo | Reads every editable attribute of one page object in a single record |
function PageObjectMarkedContentID(Index: Integer): Integer | Reads the /MCID that links a page object to the structure tree, -1 when untagged |
function PageObjectMarks(Index: Integer): TPdfContentMarks | Reads the marked-content tags and typed property lists attached to a page object |
property PageLabel: WString | Page-level property — returns the user-visible page label (such as "iv" or "A-3") rather than the zero-based index |
property PageMode: TPageMode | Page-level property — the document /PageMode hint (Outlines, Thumbs, FullScreen, ...) |
property PageNumber: Integer | Read/write 1-based current page index with bounds checking and rollback-safe native page replacement |
property PageRotation: TRotation | Page-level property — rotation applied to the current page when rendering (ro0 / ro90 / ro180 / ro270) |
function PageToDevice(PageX, PageY: Double; Left, Top, Width, Height: Integer; Rotation: TRotation; out X, Y: Integer): Boolean | Convert the page coordinate of a point to screen coordinate |
property PageWidth: Double | Page-level property — width of the current page in points (1 pt = 1/72 inch) |
function PageWordBoxes: TPdfWordBoxes | Returns TPdfWordBox records for words on the current TPdf page with character ranges and page-space rectangles |
function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean | Runs one native document lifecycle action and reports policy, environment, or callback failures without propagating exceptions |
function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean | Runs a page open or close action without changing the active page and releases temporary native page state deterministically |
TPdfDocumentLifecycleAction / TPdfPageLifecycleAction | Document and page lifecycle action policy and execution model covering the disabled, explicit-only, and compatible automatic modes |
property Password | Decryption password assigned before Active := True |
PdfAConformance | Read-only PDF/A conformance level of the currently open document, without needing to call ValidatePdfA explicitly |
PdfEConformance | Read-only PDF/E conformance level of the currently open document, without needing to call ValidatePdfE explicitly |
PdfRConformance | Read-only PDF/R conformance level of the currently open document, without needing to call ValidatePdfR explicitly |
PdfUaConformance | Read-only PDF/UA conformance level of the currently open document, without needing to call ValidatePdfUa explicitly |
PdfVersion | Read-only flag — the PDF specification version of the open document (e.g. pv14, pv17, pv20) |
PdfVTConformance | Read-only PDF/VT conformance level of the currently open document, without needing to call ValidatePdfVT explicitly |
PdfXConformance | Read-only PDF/X conformance level of the currently open document, without needing to call ValidatePdfX explicitly |
function PerformNamedAction(const ActionName: string): Boolean | Carries out a named action; NextPage, PrevPage, FirstPage, and LastPage move PageNumber with clamping |
property Permissions | Returns the owner-password permission bits as decoded from the /Encrypt dictionary |
PrintCopies | Embedded suggested number of copies the PDF's author would like the print dialog |
PrintPageRanges | Decoded list of one-based page ranges the PDF's author would like the print |
PrintPaperHandling | Decoded value of the document's /ViewerPreferences /Duplex hint — |
PrintScaling | Decoded value of the document's /ViewerPreferences /PrintScaling |
Producer | Name of the PDF library or converter that produced the file |
function ReadXmpPacket: TPdfXmpPacket | Reads the XMP metadata packet as a parsed object the caller owns |
function InspectPdfAMetadata: TPdfAMetadataReport | Returns typed equivalence evidence for all eight ISO 19005-1 Info-to-XMP mappings |
function InspectPdfUaLanguageCoverage: TPdfUaLanguageCoverageReport | Reports bounded natural-language evidence using marked-content, structure-ancestor, and catalog language inheritance |
function InspectPdfUaUnicodeCoverage: TPdfUaUnicodeCoverageReport | Reports object-scoped direct Unicode and ActualText extraction coverage in one native text-page pass |
function ReadAttachmentMetadata(MaxAttachments: Integer = 10000): TPdfAttachmentMetadataArray | Captures attachment metadata and decoded sizes in one bounded native enumeration without loading payload bytes |
function ReadStructureElements(PageNumber; Options; out Status): TPdfStructureElements | Materialises an iterative structure-tree snapshot under caller-selected depth, element, attribute, and time budgets |
ReadableContent | Returns semantic readable content fragments for screen-reader, text-to-speech, and accessibility workflows |
function ReadablePageContent(PageNumber: Integer): TPdfReadableContent | Returns semantic readable content fragments for screen-reader, text-to-speech, and accessibility workflows |
function ReadingUnits: TPdfReadingUnits | Builds sentence-level TPdfReadingUnit records from the current page readable-content stream for assistive listen-reading workflows |
Rectangle | Returns one text bounding rectangle from the current page text layout |
procedure RefreshAppearance(AnnotIndex: Integer) | Forces PDFium to regenerate the appearance stream of one annotation |
procedure RemoveAnnotationObject(Index, ObjectIndex: Integer) | Deletes one page object from an ink or stamp annotation |
function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer | Count number of rectangular areas occupied by a segment of texts. Function automatically merges small character boxes into bigger one if those characters are on the same line and use same font settings |
procedure ReloadPage | Reloads the currently selected page from the PDFium engine, refreshing the page object cache |
procedure RemoveObject(Index: Integer; DestroyObject: Boolean = True) | Removes the specified page object from the current page. When DestroyObject is True, the removed object is released after removal. The page content stream is regenerated automatically |
procedure RemovePageObjectMark(Index, MarkIndex: Integer) | Removes one marked-content entry from a page object |
procedure RemovePageObjectMarkParam(Index, MarkIndex: Integer; const Key: WString) | Removes one property from an existing mark without replacing it |
procedure RenderPage(DeviceContext: HDC; Left, Top, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []) | Render contents of a page to a device (screen, bitmap, or printer) |
function RenderPageByIndex(PageNumber, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap | Renders any page without changing PageNumber and reuses its parsed PDFium scene across output sizes |
procedure RenderPageSkia(Canvas: FPDF_SKIA_CANVAS; Width, Height: Integer; DrawFormOverlay: Boolean = True) | Renders the current page and optional form overlay to a caller-owned SkCanvas |
procedure RenderPageSkiaByIndex(Canvas: FPDF_SKIA_CANVAS; PageNumber, Width, Height: Integer; DrawFormOverlay: Boolean = True) | Renders any page to Skia through the parsed-page scene cache without changing the active page |
function RenderPageWithMatrix(Width, Height: Integer; const Matrix: FS_MATRIX; const Clip: TPdfRectangle; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap | Renders through an arbitrary transform with a destination-space clip rectangle |
function RenderSpotPlate(PlateIndex, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap | Renders one exact native print plate when the optional ABI exposes the operation |
function RenderOverprintPreview(Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap | Renders exact native overprint preview when the optional ABI exposes the operation |
function RenderPageBanded(Width, Height, BandHeight: Integer; BandCallback: TPdfBandCallback; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): Integer | Renders the page in horizontal bands so a large page never needs a full-size bitmap |
function RenderPageBandedToEncoder(Width, Height, BandHeight: Integer; Encoder: TPdfBandedImageEncoder; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TPdfBandedImageReport | Delivers sequential native-clipped bands to a caller-owned encoder and reports progress and peak band memory |
function RenderPageBandedToStream(Stream: TStream; Width, Height: Integer; const StreamOptions: TPdfBandedImageStreamOptions; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TPdfBandedImageReport | Streams PNG or TIFF rows directly from page bands without retaining full-page pixels |
RenderPageProgressive | Cancellable variant of RenderPage that drives PDFium's progressive rendering loop and polls an IPdfCancellationToken between iterations so long high-DPI renders can abort mid-page instead of blocking until completion |
function RenderPageProgressiveWithColorScheme(Bitmap: TBitmap; Left, Top, Width, Height: Integer; const AToken: IPdfCancellationToken; const ColorScheme: TPdfColorScheme; Rotation: TRotation = ro0; Options: TRenderOptions = []; Background: TColor = clWhite): TPdfProgressiveStatus | Cancellable progressive render that overrides path and text colours for low-vision reading |
function RenderPagesParallel(const PageNumbers: array of Integer; const Options: TPdfParallelRenderOptions; const CancellationToken: IPdfCancellationToken = nil): TPdfParallelRenderReport | Captures the current document once into bounded storage and renders requested pages through isolated worker-owned PDFium documents sharing memory, a read-only file mapping, or native random access |
function RenderPageThumbnail(PageIndex, MaxWidth, MaxHeight: Integer; Rotation: TRotation; Options: TRenderOptions; Background: TColor; const ColorScheme: TPdfColorScheme): TBitmap | Renders any one-based page into a revision-cached caller-owned bitmap with full render-key control |
function RenderTile(Left, Top, Width, Height, PageWidth, PageHeight: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap | Render rectangular area of a page to a new bitmap. Returned bitmap has to be manually released |
function SpotPlates: TPdfSpotPlateInfos | Returns exact native spot-plate indices and UTF-8 names when the optional ABI exposes enumeration |
InspectOptionalContent | Enumerates optional-content groups, configurations, usage metadata, radio groups, OCMD expressions, and effective PDFium rendering state |
function IsAnnotationSubtypeSupported(Subtype: TPdfAnnotationSubtype): Boolean | Reports whether the loaded PDFium module can create the annotation subtype |
function IsAnnotationObjectSubtypeSupported(Subtype: TPdfAnnotationSubtype): Boolean | Reports whether PDFium can extract and edit appearance objects for the annotation subtype |
function SaveAs(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean | Saves the copy of PDF document to the specified stream. If PdfVersion is pv13 through pv17, the saved output is normalised and validated for that target version, including existing catalog /Version overrides in incremental output. The validator covers the full PDF 1.1–1.7 / ISO 32000-1 feature timeline: filters (FlateDecode, JBIG2Decode, JPXDecode), object & xref streams, transparency (SMask, ca/CA, blend modes), Tagged PDF (StructTreeRoot, MarkInfo), colour spaces (ICCBased, DeviceN), page boxes (BleedBox/TrimBox/ArtBox), output intents, optional content, AcroForm, CID/Type 0 and OpenType fonts, AES & AES-256 encryption (CFM AESV2/AESV3), all version-restricted annotation subtypes (Widget, Sound, Movie, FreeText, Line, Square, Circle, Highlight, Underline, StrikeOut, Stamp, Ink, Popup, FileAttachment, TrapNet, Squiggly, PrinterMark, Polygon, PolyLine, Caret, Screen, Watermark, 3D, Redact), version-restricted action types (SubmitForm, ResetForm, ImportData, Hide, Named, JavaScript, Trans, SetState, Rendition, GoToE, GoTo3DView), and catalog entries (Perms, Legal, Collection, Requirements, NeedsRendering). Anything that exceeds the chosen target version raises EPdfError. If the document has no existing OpenAction and the target version supports it, the saved PDF opens on the first page with Fit Height zoom. Trial builds apply the trial watermark during save |
function SaveAsLinearized(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean | Writes a full-rewrite Fast Web View PDF with first-page grouping, two classic xref sections, and compressed Annex F hints when beneficial |
function SaveAsLinearized(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean | Atomically writes Fast Web View output to a file after completing and validating a sibling temporary file |
function SaveAsObjectStream(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean | Reorders active objects for page locality, packs eligible values into bounded ObjStm groups, and writes complete type-2 xref entries |
function SaveAsObjectStream(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean | Atomically writes PDF 1.5+ object-stream output after completing a sibling temporary file |
function SaveAsNormalizedContent(Stream: TStream; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean | Normalises each logical page content sequence and coalesces safe /Contents arrays into one stream |
function SaveAsNormalizedContent(const FileName: string; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean | Atomically replaces a file after normalised content and a complete classic xref are written |
SaveAsPageLabelled | Writes a full PDF copy whose catalog /PageLabels number tree is replaced with the supplied ranges, applying decimal, roman, and letter numbering styles per ISO 32000-1 §12.4.2 |
SaveAsOptionalContentConfigured | Writes and strictly verifies a copy with caller-selected optional-content group visibility for one configuration and usage |
function SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean | Sweeps unreachable objects and rewrites the document as one classic revision preserving object numbers |
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean | Atomically replaces a file after a pruned single-revision rewrite |
function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean | Sweeps unreachable objects and rewrites references so duplicate fonts, images, and form XObjects share one representative |
function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean | Atomically replaces a file after a deduplicated single-revision rewrite |
function SaveAsFlateRecompressed(Stream: TStream; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean | Re-encodes eligible FlateDecode streams at maximum compression when the measured saving clears a caller threshold |
function SaveAsFlateRecompressed(const FileName: string; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean | Atomically replaces a file after a Flate-recompressed rewrite |
function SaveAsInlineImagesExternalised(Stream: TStream; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean | Extracts BI/ID/EI inline images into reusable XObjects, expands abbreviations, and replaces inline blocks with Do operators |
function SaveAsInlineImagesExternalised(const FileName: string; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean | Atomically replaces a file after inline-image externalisation |
function SaveAsReproducible(Stream: TStream; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean | Strips non-deterministic timestamps and /ID so two saves of the same document are byte-identical |
function SaveAsReproducible(const FileName: string; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean | Atomically replaces a file after a reproducible rewrite |
function ExportObjectGraph(Stream: TStream; const Options: TPdfObjectGraphInspectOptions; out Report: TPdfObjectGraphReport): Boolean | Exports active indirect values as budgeted typed JSON and reports explicit truncation |
function SaveAsObjectGraphPatched(Stream: TStream; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean | Appends a validated dictionary-only patch revision and strict-loads it before copying to the destination |
function SaveAsObjectGraphPatched(const FileName: string; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean | Atomically replaces a file after a successful object-graph patch transaction |
function SaveAsRedacted(Stream: TStream; const Options: TPdfRedactionOptions; out Report: TPdfRedactionReport): Boolean | Applies /Redact annotations to an isolated snapshot, removes intersecting top-level page objects, paints opaque replacements, and emits a clean single-revision stream |
function SaveAsRedacted(const FileName: string; const Options: TPdfRedactionOptions; out Report: TPdfRedactionReport): Boolean | Atomically replaces a file after the redaction and sanitisation pipeline succeeds |
SaveAsSanitised | Produces a clean single-revision copy that strips active content and catalog /AF, then prunes unreachable objects so orphaned JavaScript, action, and attachment bodies disappear from the file body |
BeginIncrementalSave / CommitIncrementalSave / EndIncrementalSave | Dirty-object incremental save session: capture a stable baseline once, append byte-preserving revisions after the exact previous output, and release the session when done |
procedure BeginIncrementalSave(AllowSignedDocument: Boolean = False) | Captures the stable baseline and exact encrypted or unencrypted source prefix for a dirty-object revision session |
function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean | Appends changed or new indirect objects, inherits existing encryption, and independently validates the result |
function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean | Durably flushes and reopens a side file before atomic replacement and restores session state after any failure |
procedure EndIncrementalSave | Releases the session baseline and accumulated output |
function ExportFDF(const FileName: string): Integer | Writes form field values as FDF (ISO 32000-1 12.7.11); a TStream overload is also available |
function SaveAsEncrypted(const FileName: string; const Options: TPdfEncryptOptions): Boolean | Saves the active PDF with AESV3-CBC or ISO/TS 32003 AESV4-GCM encryption |
function SaveAsEncryptedToStream(Stream: TStream; const Options: TPdfEncryptOptions): Boolean | Writes the encrypted PDF output into any seekable TStream without staging through disk |
function PreparePadesRemoteSignature(Prepared: TStream; const Options: TPadesRemoteSignOptions; out Request: TPadesRemoteSigningRequest): Boolean | Creates a constrained approval or certification field plus the detached-signature digest, exact ByteRange, coordinates, and prepared-PDF fingerprint needed for remote signing |
class function CompletePadesRemoteSignature(Prepared, Dest: TStream; const Request: TPadesRemoteSigningRequest; const CmsDer: TBytes): Boolean | Rejects a modified or reused session and fills the reserved signature slot only when the detached CMS is bound to the prepared document digest |
class procedure SavePadesRemoteSigningRequest(Stream: TStream; const Request: TPadesRemoteSigningRequest) | Writes the fixed versioned remote-signing request format to a stream |
property SecurityHandlerRevision: Integer | Revision of the standard security handler, or a negative value for an unencrypted document |
function SetAnnotationFontColor(AnnotIndex: Integer; Color: TColor): Boolean | Overrides the text colour of a form-field widget annotation |
procedure SetAttachmentStringValue(Index: Integer; const Key, Value: WString) | Writes one string entry into the file-specification dictionary of an attachment |
class procedure SetDeterministicTime(FixedEpoch: Int64) | Freezes the clock PDFium stamps into output so saved documents are byte-reproducible |
class function LoadPadesRemoteSigningRequest(Stream: TStream): TPadesRemoteSigningRequest | Reads and validates the fixed versioned remote-signing request format |
function RenewPadesArchiveTimestamp(const FileName: string; const Options: TPadesArchiveTimestampOptions; out Report: TPadesArchiveTimestampReport): Boolean | Appends an archival Document Time-stamp to the original loaded PAdES bytes and writes an atomically staged file |
function RenewPadesArchiveTimestampToStream(Stream: TStream; const Options: TPadesArchiveTimestampOptions; out Report: TPadesArchiveTimestampReport): Boolean | Appends an archival Document Time-stamp and writes the validated B-LTA chain to a stream |
class procedure RestoreActualTime | Returns PDFium to the system clock after a deterministic-time session |
function SaveAsPadesDss(const FileName: string; const Options: TPadesDssOptions): Boolean | Saves the active PDF to a file with deduplicated PAdES DSS material, signature-specific VRI dictionaries, and the source xref representation |
function SaveAsPadesDssToStream(Stream: TStream; const Options: TPadesDssOptions): Boolean | Saves the active PDF to a stream with deduplicated PAdES DSS material, signature-specific VRI dictionaries, and the source xref representation |
SaveAsPdfA | Saves the current document as a PDF/A-1b conformant file by post-processing the base PDF with an incremental update that injects an XMP metadata stream, an sRGB ICC OutputIntent, and an updated document catalog |
function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): Boolean | In-memory variant of SaveAsPdfA — writes the PDF/A-1b output into any TStream without staging through disk |
SaveAsPdfE | Saves the current document as a PDF/E-1 conformant file by post-processing the base PDF with an incremental update that injects PDF/E-1 file-format markers (ISO 24517-1:2008) |
function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean | In-memory variant of SaveAsPdfE — writes the PDF/E-1 output into any TStream without staging through disk |
SaveAsPdfR | Saves the current document as a PDF/R-1 conformant file (ISO 23504-1:2020, the raster image transport and storage subset of PDF used for scanned documents) |
function SaveAsPdfRToStream(Stream: TStream; const Options: TPdfRSaveOptions): Boolean | In-memory variant of SaveAsPdfR — writes PDF/R-1 output into any TStream without staging through disk |
SaveAsPdfUa | Saves PDF/UA-1 by default or PDF/UA-2 with TPdfUaSaveOptions.PdfUa2, including the required XMP identification and effective PDF version |
function SaveAsPdfUaToStream(Stream: TStream; const Options: TPdfUaSaveOptions): Boolean | In-memory PDF/UA-1 and PDF/UA-2 output without staging through disk |
SaveAsPdfVT | Saves the current document as a single-file PDF/VT-1 conformant file (ISO 16612-2:2010, the variable and transactional printing PDF subset) |
function SaveAsPdfVTToStream(Stream: TStream; const Options: TPdfVTSaveOptions): Boolean | In-memory variant of SaveAsPdfVT — writes PDF/VT output into any TStream without staging through disk |
SaveAsPdfX | Saves the current document as a PDF/X-1a:2001, PDF/X-3:2002, or PDF/X-4 conformant file by post-processing the base PDF with an incremental update that injects PDF/X file-format markers (ISO 15930 family) |
function SaveAsPdfXToStream(Stream: TStream; const Options: TPdfXSaveOptions): Boolean | In-memory variant of SaveAsPdfX — writes PDF/X output into any TStream without staging through disk |
function SaveAsWithAssociateFiles(const FileName: string; const Options: TAssocFilesOptions): Boolean | Saves the active PDF to a file path while injecting associated files into the catalog or pages conforming to ISO 32000-2 §7.11.4 |
function SaveAsWithAssociateFilesToStream(Stream: TStream; const Options: TAssocFilesOptions): Boolean | Writes the PDF output with injected associated files into any seekable TStream without staging through disk |
function SaveAsWithXmpPacket(Stream: TStream; Packet: TPdfXmpPacket; AllowSignedDocument: Boolean = False): Boolean | Saves the document with a replacement XMP metadata packet |
function NormalizePdfAMetadata(Stream: TStream; AllowSignedDocument: Boolean = False): Boolean | Repairs mismatched mapped XMP properties and saves the normalised document |
procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags) | Sets AcroForm field flags for the form field at the specified annotation index on the current page |
procedure SetFormFieldFlagsAt(X, Y: Single; const Flags: TPdfFormFieldFlags) | Sets the Flags bit field on the form field at the given coordinates |
function SetFocusedFormFieldText(const Value: WString): Boolean | Sets the value of the current logical form field by FocusedFormFieldIndex without depending on the interactive caret |
function SetFocusedFormFieldTextDirection(Direction: TPdfFormTextDirection): Boolean | Changes the focused widget's in-memory text direction; the value is not persisted on save |
function SetFocusedFormOptionSelected(Index: Integer; Selected: Boolean): Boolean | Selects or clears one option of the focused list or combo box |
procedure SetPageBox(Box: TPdfPageBox; const Rectangle: TPdfRectangle) | Writes a new rectangle for the named page box (MediaBox / CropBox / BleedBox / TrimBox / ArtBox) on the current page |
procedure SetPageObjectMarkParam(Index, MarkIndex: Integer; const Param: TPdfContentMarkParam) | Upserts one typed property on an existing mark while preserving its identity and unrelated properties |
SetText | Adds a text page object at the given page coordinate |
procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray) | Sets per-character positions for the specified text object. The first character position is implied as 0; Positions[0] sets the second character position, Positions[1] sets the third, and so on. Values are in points and relative to the text object origin |
StampPagesFromPdf | Stamps a source page as a positioned, scaled, optionally rotated Form XObject overlay or underlay across one or more target pages |
Signature | Indexed property — returns one digital-signature record (signer, reason, contact, byte range) |
SignatureCount | Number of digital signature fields embedded in the document |
property Signatures: TPdfSignatures | Copies all native signature records into one lifetime-safe snapshot |
function SignPades(const FileName: string; const Options: TPadesSignOptions): Boolean | Appends an approval or certification PAdES signature with optional seed-value, certificate, FieldMDP, and DocMDP constraints while preserving existing form and permission entries |
function SignPadesToStream(Stream: TStream; const Options: TPadesSignOptions): Boolean | Writes a constrained PAdES signature update with a registered Widget field, 64-bit ByteRange processing, and the source xref representation |
function SignPadesWithPdfA(const FileName: string; const Options: TPadesSignOptions; PdfAOptions: TPdfASaveOptions): Boolean | Saves a signed PAdES PDF document complying with PDF/A archive standards |
StructureElements | Indexed property — returns the children of a logical structure tree element (StructTree) |
Subject | Returns the value of the /Subject entry from the PDF document information dictionary |
function Text(StartIndex: Integer = 0; Count: Integer = MaxInt): WString | Extract text string from the page. StartIndex and Count parameters determine characters to be extracted. StartIndex parameter is 0-based |
function TextInRectangle(Left, Top, Right, Bottom: Double): WString | Extract text within a rectangular boundary on the page |
TextPage | Native PDFium text-page handle for the currently active page |
function ThumbnailDecodedData: TBytes | Reads the embedded page thumbnail with its stream filters decoded |
property ThumbnailCacheMaxEntries: Integer | Maximum retained embedded and rendered thumbnail entries, default 64 |
property ThumbnailCacheMaxBytes: Int64 | Maximum estimated pixel bytes retained by the thumbnail LRU, default 64 MiB |
property ThumbnailCacheStatistics: TPdfThumbnailCacheStatistics | Reports occupancy, stored bytes, hits, misses, and evictions |
property ThumbnailRevision: Int64 | Monotonic content revision used by thumbnail consumers to discard stale local previews |
function ThumbnailRawData: TBytes | Reads the embedded page thumbnail as stored, with its filters still applied |
property Thumbnail | Returns the raw bytes of the /Thumb entry for the current page (optional precomputed preview, typically a 64x64 raster) |
Title | Returns the value of the /Title entry from the PDF document information dictionary |
property TrailerEnds: TPdfCardinalArray | Byte offsets where each trailer of the document ends, one per revision |
procedure TransformPageAnnotations(const Matrix: FS_MATRIX) | Applies a transform matrix to every annotation on the current page |
procedure TransformPageContent(const Matrix: FS_MATRIX; const Clip: TPdfRectangle) | Applies a transform matrix to every content object on the current page, with a clip rectangle |
procedure TransformPageObject(Index: Integer; const Matrix: FS_MATRIX) | Multiplies the transform matrix of one page object, moving, scaling, rotating, or skewing it |
procedure TransformPageObjectClipPath(Index: Integer; const Matrix: FS_MATRIX) | Transforms only the clip geometry associated with one page object |
Transparent | Whether the currently active page contains transparent content |
procedure UpdateAnnotationObject(AnnotIndex: Integer; PageObj: Pointer) | Tells an annotation that one of its page objects has been modified |
procedure UpdatePageObject(Index: Integer; const Value: TPdfPageObjectInfo; Changes: TPdfPageObjectChanges) | Writes back only the page-object attributes named by the change set |
procedure UpdatePage | Commits in-memory edits made through CreateAnnotation, AddImage, AddText, SetFormFieldFlagsAt, etc. to the underlying PDFium page |
property UserPermissions | Returns the user-password permission bits (a subset of Permissions) |
UserGrantedPermissions | Returns user-password permissions as a typed TPdfPermissions set |
UserHasPermission(Permission: TPdfPermission): Boolean | Tests one user-password permission without manual bit arithmetic |
function ValidatePades: TPadesValidationResult | Validates unique signature-profile entries and the exact Contents exclusion span directly in the original source bytes without resaving the PDF |
function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult | Verifies exact original ByteRange data, signer trust, optional revocation evidence, and RFC 3161 timestamp tokens |
function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean | Captures the original source and dispatches cancellable staged trust validation to a worker thread |
function ValidatePdfMac(const Password: AnsiString): TPdfMacValidationResult | Verifies a standalone PDF MAC using the exact original source bytes and supplied password |
function ValidatePdfA: TPdfAValidationResult | Validates PDF/A markers, content facts, and exact ISO 19005-1 Info-to-XMP value equivalence |
function ValidatePdfE: TPdfEValidationResult | Inspects the currently open PDF for PDF/E-1 compliance markers and returns a structured result with the detected conformance level plus the set of specific issues found |
ValidatePdfR | Validates PDF/R-1 file markers, metadata, encryption profile, raster-only page content, strip geometry, colour, effective resolution, and compression parameters |
function ValidatePdfUa: TPdfUaValidationResult | Validates PDF/UA-1 and PDF/UA-2 identification, shared accessibility rules, and profile-specific PDF 2.0 requirements |
function ValidatePdfVT: TPdfVTValidationResult | Inspects the currently open PDF for PDF/VT compliance markers and returns a structured result with the detected conformance level plus the set of issues found |
function ValidatePdfX: TPdfXValidationResult | Inspects the currently open PDF for PDF/X compliance markers and returns a structured result with the detected conformance level plus the set of specific issues found |
function VisitStructureElements(PageNumber; Options; Visitor; out Status): Integer | Streams structure element snapshots to a method callback without materialising a page array |
ViewerPreference | Indexed property — returns the integer value of a /ViewerPreferences key (NumCopies, PrintScaling, etc.) |
WebLink | URL and bounding rectangles for an auto-detected web link on a page |
WebLinkCount | Number of auto-detected web URLs identified by scanning a page's text |
property XFA | Returns the XFA XML packet embedded in the document (PDF/A 2.0 deprecated the format, but Acrobat-generated forms still use it) |
property XfaFormPackets: TXfaPacketList | Snapshots all embedded XFA packets exposed through the XFA runtime as a TXfaPacketList collection |
property XfaRuntimeAvailable: Boolean | Indicates whether the XFA runtime is available for the loaded document |
property XfaStaticReadable: Boolean | Indicates whether the static XFA packet can be read without the XFA runtime |
function LinkZOrderAtPoint(X, Y: Double): Integer | Returns the frontmost link annotation z-order at page coordinates, or -1 when no link is hit |
function FormFieldZOrderAtPoint(X, Y: Double): Integer | Returns the frontmost form field z-order at page coordinates, or -1 when no field is hit |
function TryGetAnnotationFileAttachment(AnnotIndex: Integer; out Attachment: TPdfAnnotationAttachment; MaxBytes: Cardinal = 67108864): Boolean | Copies bounded file-attachment metadata and payload from an annotation into an owned record |
function GetLinkedAnnotationIndex(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship): Integer | Resolves the Popup or IRT related annotation index with dangling-reference protection |
function GetLinkedAnnotationChain(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship; MaxDepth: Integer = 64): TPdfIntegerArray | Walks a Popup or IRT relationship chain with cycle and depth protection |
function GetAnnotationDictionaryValue(AnnotIndex: Integer; const Key: WString): TPdfDictionaryValue | Reads one typed value from an annotation dictionary entry |
function GetAttachmentDictionaryValue(Index: Integer; const Key: WString): TPdfDictionaryValue | Reads one typed value from an embedded-file attachment dictionary entry |
procedure SetFocusableAnnotationSubtypes(const Subtypes: array of TPdfAnnotationSubtype) | Restricts which annotation subtypes may receive keyboard focus through the form handle |
function GetFocusableAnnotationSubtypes: TPdfAnnotationSubtypes | Returns the annotation subtypes currently eligible for keyboard focus |
procedure ClearFormSelectionRects | Clears the cached form selection rectangles reported through OnFormSelectionRect |
TPdfView is a scrollable visual control for displaying and interacting with PDF documents. It requires a Pdf: TPdf reference
| API | Description |
property About: string | Documents the About member published by TPdfView |
Active | Activates or deactivates the viewer, opening the bound PDF document and rendering the selected page |
property ActualSizeZoom[PageNumber: Integer]: Double | Read-only zoom factor that displays the page at its true physical size on the host screen |
procedure AddImage(const FileName: string; X, Y, Width, Height: Integer); overload | Adds an image to the page currently displayed by TPdfView, converting a viewer client-coordinate rectangle into PDF page coordinates |
function AddJpegImage(JpegImage: TStream; X, Y, Width, Height: Integer): Boolean | TPdfView wrapper that forwards to TPdf.AddJpegImage |
procedure AddPicture(Picture: TPicture; X, Y: Integer); overload | TPdfView wrapper that forwards to TPdf.AddPicture |
Align | Controls how the PDF viewer is laid out inside its parent container |
property AllowUserPageChange: Boolean | Allows user input (mouse wheel, scroll bar drag, key bindings) to change the current page |
property AllowUserTextSelection: Boolean | Gates user-input-driven text selection in the viewer |
Anchors | Specifies which edges of the viewer remain a fixed distance from the corresponding edges of its parent when the parent is resized |
property Annotation[Index: Integer]: TPdfAnnotation | TPdfView wrapper that forwards to TPdf.Annotation |
property AnnotationCount: Integer | TPdfView wrapper that forwards to TPdf.AnnotationCount |
property AsyncRendering: Boolean | Opt-in flag that tells the view to draw a small "Loading..." overlay during long renders so applications using their own worker for off-thread rendering share a consistent visual affordance |
property Bitmap[Index: Integer]: TBitmap | TPdfView wrapper that forwards to TPdf.Bitmap |
property BitmapCount: Integer | TPdfView wrapper that forwards to TPdf.BitmapCount |
property Canvas: TCanvas | Drawing canvas exposed by the control after a page is rendered |
property ChangePageOnMouseScrolling: Boolean | In SinglePage mode, controls whether mouse-wheel scrolling at the page edge advances to the next page |
property Character[Index: Integer]: WideChar | TPdfView wrapper that forwards to TPdf.Character |
property CharacterAngle[Index: Integer]: Single | TPdfView wrapper that forwards to TPdf.CharacterAngle |
property CharacterCount: Integer | TPdfView wrapper that forwards to TPdf.CharacterCount |
property CharacterFontSize[Index: Integer]: Double | TPdfView wrapper that forwards to TPdf.CharacterFontSize |
property CharacterFontWeight[Index: Integer]: Integer | TPdfView wrapper that forwards to TPdf.CharacterFontWeight |
property CharacterGenerated[Index: Integer]: Boolean | TPdfView wrapper that forwards to TPdf.CharacterGenerated |
function CharacterIndexAtPos(X, Y: Integer; ToleranceX, ToleranceY: Double): Integer | Returns the character index in the current page nearest to the screen pixel (X, Y), or -1 if no character is close enough |
property CharacterIsHyphen[Index: Integer]: Boolean | TPdfView wrapper that forwards to TPdf.CharacterIsHyphen |
property CharacterMapError[Index: Integer]: Boolean | TPdfView wrapper that forwards to TPdf.CharacterMapError |
property CharacterOrigin[Index: Integer]: TPoint | TPdfView wrapper that forwards to TPdf.CharacterOrigin |
property CharacterRectangle[Index: Integer]: TRect | TPdfView wrapper that forwards to TPdf.CharacterRectangle |
property Charcode[Index: Integer]: WideChar | TPdfView wrapper that forwards to TPdf.Charcode |
procedure ClearFormFieldFocus | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
procedure ClearHighlight | TPdfView wrapper that forwards to TPdfView.ClearHighlight |
procedure ClearReadingHighlight | Controls the TPdfView reading-highlight overlay used by synchronised text-to-speech playback |
procedure ClearReadingWord | Clears the current word-level reading cursor overlay on TPdfView |
procedure ClearSelection | Clears the current text selection and invalidates the view |
Color | Sets the background colour drawn between the page rectangles and around the document edges |
Constraints | Defines the minimum and maximum width and height the PDF viewer is allowed to reach when its parent is resized |
function CopySelectionToClipboard: Boolean | Copies selected Unicode text using the Windows or native LCL system clipboard |
constructor Create(AOwner: TComponent); override | Creates the TPdfView control and initialises rendering, scrolling, selection, and form interaction state |
procedure CreateAnnotation(const Annotation: TPdfAnnotation) | TPdfView wrapper that forwards to TPdf.CreateAnnotation |
property CurrentCharIndex: Integer | Read-only zero-based character index under the current mouse cursor (or last hit-tested point) |
procedure DeleteAnnotation(Index: Integer) | TPdfView wrapper that forwards to TPdf.DeleteAnnotation |
destructor Destroy; override | Releases viewer resources, rendering buffers, and document subscriptions before TPdfView is destroyed |
function DeviceToPage(X, Y: Integer; out PageX, PageY: Double): Boolean; overload | Converts a screen pixel (X, Y) inside the view to a PDF user-space point on the current page |
property DisplayMode: TPdfDisplayMode | Layout mode: single page, continuous, two-page, two-page continuous, with or without cover |
property DragCursor | Documents the DragCursor member published by TPdfView |
property DragKind | Documents the DragKind member published by TPdfView |
property DragMode | Documents the DragMode member published by TPdfView |
Enabled | Controls whether the PDF viewer accepts user input from the mouse and keyboard |
property Find: FPDF_SCHHANDLE | TPdfView wrapper that forwards to TPdf.Find |
function FindFirst(const Text: WString; Options: TSearchOptions= []; StartIndex: Integer= 0; DirectionUp: Boolean= True): Integer | Start a search of the specified text. StartIndex is 0-based, -1 is for end of the page. DirectionUp parameter determines the direction of this search operation |
function FindNext: Integer | TPdfView wrapper that forwards to TPdf.FindNext |
function FindPrevious: Integer | TPdfView wrapper that forwards to TPdf.FindPrevious |
property FitMode: TPdfFitMode | Controls how the current page sits inside the viewer's client area; re-applied automatically on Resize and when PageNumber changes so long documents with mixed page sizes stay framed |
function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer | TPdfView wrapper that forwards to TPdf.FlattenPage |
function FocusFormField(Index: Integer): Boolean | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusNextFormField: Integer | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusPreviousFormField: Integer | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusedFormFieldDetails: TPdfFormFieldInfo | Returns TPdfFormFieldInfo for the current logical form field |
function FocusedFormFieldIndex: Integer | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusedFormFieldName: WString | Returns the current logical form field display name, preferring AlternateName and falling back to Name |
function FocusedFormFieldText: WString | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FocusedFormFieldTextDirection: TPdfFormTextDirection | Reads the in-memory text direction of the widget focused in the viewer |
function FocusedFormFieldValue: WString | Returns the current logical form field value by FocusedFormFieldIndex without depending on the interactive caret |
property FontAscent[Index: Integer; FontSize: Single]: Single | TPdfView wrapper that forwards to TPdf.FontAscent |
property FontBaseName[Index: Integer]: WString | TPdfView wrapper that forwards to TPdf.FontBaseName |
property FontData[Index: Integer]: TBytes | TPdfView wrapper that forwards to TPdf.FontData |
property FontDescent[Index: Integer; FontSize: Single]: Single | TPdfView wrapper that forwards to TPdf.FontDescent |
property FontFamilyName[Index: Integer]: WString | TPdfView wrapper that forwards to TPdf.FontFamilyName |
property FontFlags[Index: Integer]: Integer | TPdfView wrapper that forwards to TPdf.FontFlags |
property FontHandle[Index: Integer]: FPDF_FONT | TPdfView wrapper that forwards to TPdf.FontHandle |
property FontIsEmbedded[Index: Integer]: Boolean | TPdfView wrapper that forwards to TPdf.FontIsEmbedded |
property FontItalicAngle[Index: Integer]: Integer | TPdfView wrapper that forwards to TPdf.FontItalicAngle |
property FontSize[Index: Integer]: Double | TPdfView wrapper that forwards to TPdf.FontSize |
property FontWeight[Index: Integer]: Integer | TPdfView wrapper that forwards to TPdf.FontWeight |
function FormCanRedo: Boolean | Reports whether the focused AcroForm widget has at least one undone edit to redo |
function FormCanUndo: Boolean | Reports whether the focused AcroForm widget has at least one edit to undo |
property FormField[Index: Integer]: WString | TPdfView wrapper that forwards to TPdf.FormField |
property FormFieldAt[X, Y: Integer]: WString | TPdfView wrapper that forwards to TPdf.FormFieldAt |
property FormFieldCount: Integer | TPdfView wrapper that forwards to TPdf.FormFieldCount |
property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo | TPdfView wrapper that forwards to TPdf.FormFieldInfo |
property FormFieldInfoAt[X, Y: Integer]: TPdfFormFieldInfo | TPdfView wrapper that forwards to TPdf.FormFieldInfoAt |
function FormFieldTypeAt(X, Y: Integer; out FieldType: TPdfFormFieldType): Boolean | Converts view pixels to page coordinates and performs native field-type hit testing |
function FormFieldTabOrder: TPdfIntegerArray | Works with the current-page AcroForm logical focus cursor for keyboard, speech, and accessibility workflows |
function FormRedo: Boolean | Redoes the most recently undone edit on the focused AcroForm widget, driving PDFium's per-widget redo history |
function FormUndo: Boolean | Undoes the most recent edit on the focused AcroForm widget, driving PDFium's per-widget undo history |
procedure GenerateFormAppearances | TPdfView wrapper that forwards to TPdf.GenerateFormAppearances |
function GetSelectedFormText: WString | Returns the text currently selected inside the focused AcroForm widget on the view's active page |
property HasFormFieldAt[X, Y: Integer]: Boolean | TPdfView wrapper that forwards to TPdf.HasFormFieldAt |
function HasSelection: Boolean | Returns whether any text is currently selected in the viewer |
property HighlightColor: TColor | Colour of the rectangle painted over each match returned by HighlightSearchText. Defaults to clYellow; published so applications can theme the highlight |
function HighlightSearchText(const Text: WString; MatchCase: Boolean= False; MatchWholeWord: Boolean= False): Integer | TPdfView wrapper that forwards to TPdfView.HighlightSearchText |
property Image[Index: Integer]: TPdfImage | TPdfView wrapper that forwards to TPdf.Image |
property ImageCount: Integer | TPdfView wrapper that forwards to TPdf.ImageCount |
property LinkAnnotation[PageNumber, Index: Integer]: TLinkAnnotation | TPdfView wrapper that forwards to TPdf.LinkAnnotation |
function LinkAnnotationAtPos(X, Y: Integer; out PageNumber: Integer): Integer; overload | Returns the link-annotation index at the screen pixel (X, Y), or -1 |
property LinkAnnotationCount[PageNumber: Integer]: Integer | TPdfView wrapper that forwards to TPdf.LinkAnnotationCount |
property LinkOptions: TPdfViewLinkOptions | Published set that controls which of PDFium's four link action types the view follows automatically when the user clicks the link |
LoadingColor | Fill colour of the “loading” placeholder drawn whilst a page is still being rendered |
LoadingText | Text shown in the centre of the page whilst asynchronous rendering is still in progress |
property NightDuotoneInk: TColor | Controls the ink colour used by the reNightDuotone low-vision render option |
property NightDuotonePaper: TColor | Controls the paper colour used by the reNightDuotone low-vision render option |
property ObjectBitmap[Index: Integer]: TBitmap | TPdfView wrapper that forwards to TPdf.ObjectBitmap |
property ObjectBounds[Index: Integer]: TPdfRectangle | TPdfView wrapper that forwards to TPdf.ObjectBounds |
property ObjectCount: Integer | TPdfView wrapper that forwards to TPdf.ObjectCount |
property ObjectHandle[Index: Integer]: Pointer | TPdfView wrapper that forwards to TPdf.ObjectHandle |
property ObjectTransparent[Index: Integer]: Boolean | TPdfView wrapper that forwards to TPdf.ObjectTransparent |
property ObjectType[Index: Integer]: TObjectType | TPdfView wrapper that forwards to TPdf.ObjectType |
property Options: TRenderOptions | Set of rendering hints and TPdfView post-render low-vision options |
property Page: FPDF_PAGE | TPdfView wrapper that forwards to TPdf.Page |
property PageBorderColor: TColor | Colour of the 1-pixel border drawn around each page rectangle |
property PageBounds: TPdfRectangle | TPdfView wrapper that forwards to TPdf.PageBounds |
property PageColor: TColor | Background colour painted under the rendered PDF page, decoupled from the surrounding control's Color. Default is clWhite so PDF pages stay paper-white even when the host control's Color is themed dark |
property PageCount: Integer | TPdfView wrapper that forwards to TPdf.PageCount |
property PageHeight: Double | TPdfView wrapper that forwards to TPdf.PageHeight |
property PageHeightZoom[PageNumber: Integer]: Double | Read-only zoom factor that fits the page height into the view |
property PageLabel: WString | TPdfView wrapper that forwards to TPdf.PageLabel |
property PageNumber: Integer | TPdfView wrapper that forwards to TPdf.PageNumber |
property PageRotation: TRotation | TPdfView wrapper that forwards to TPdf.PageRotation |
PageShadowColor | Fill colour of the drop shadow painted beneath each page rectangle |
property PageShadowSize: Integer | Width (in pixels) of the soft shadow drawn around each page in continuous modes |
function PageToDevice(PageX, PageY: Double; out X, Y: Integer): Boolean; overload | Inverse of DeviceToPage: converts a PDF user-space point to a screen pixel inside the view |
property PageWidth: Double | TPdfView wrapper that forwards to TPdf.PageWidth |
property PageWidthZoom[PageNumber: Integer]: Double | Read-only zoom factor that fits the page width into the view |
function PageWordBoxes: TPdfWordBoxes | Returns TPdfWordBox records for words on the current TPdfView page with character ranges and page-space rectangles |
property PageZoom[PageNumber: Integer]: Double | Read-only zoom required to fit the current page into the view at the current DisplayMode |
procedure PaintSelection(SelectionStart, SelectionEnd: Integer; Mask: TColor) | TPdfView wrapper that forwards to TPdfView.PaintSelection |
property ParentShowHint | Documents the ParentShowHint member published by TPdfView |
property Pdf: TPdf | References the TPdf component whose document is rendered by the viewer |
PopupMenu | Associates a TPopupMenu with the PDF viewer so that right-clicking on a page presents a context menu |
ReadableContent | Returns semantic readable content fragments for screen-reader, text-to-speech, and accessibility workflows |
property ReadingHighlightColor: TColor | Controls the TPdfView reading-highlight overlay used by synchronised text-to-speech playback |
function ReadingUnits: TPdfReadingUnits | Builds sentence-level TPdfReadingUnit records from the current TPdfView page |
property ReadingWordColor: TColor | Controls the overlay colour used for the current word-level reading cursor |
property ReadingWordFollow: Boolean | Controls whether TPdfView scrolls the current spoken word into view whilst tracking reading |
property Rectangle[Index: Integer]: TRect | TPdfView wrapper that forwards to TPdf.Rectangle |
function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer | TPdfView wrapper that forwards to TPdf.RectangleCount |
procedure ReloadPage | TPdfView wrapper that forwards to TPdf.ReloadPage |
procedure RemoveObject(Index: Integer; DestroyObject: Boolean = True) | TPdfView wrapper that forwards to TPdf.RemoveObject |
procedure RenderPage(DeviceContext: HDC; Left, Top, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []) | Render contents of a page to a device (screen, bitmap, or printer) |
function RenderTile(Left, Top, Width, Height, PageWidth, PageHeight: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []): TBitmap | Render a rectangular area of a page to a new bitmap. The returned bitmap has to be released manually |
property Rotation: TRotation | Visual rotation applied to the rendered page (ro0 / ro90 / ro180 / ro270) |
procedure SelectAll | Selects every character on the page(s) currently displayed by the viewer |
function SelectAllFormText: Boolean | Selects every character inside the focused AcroForm widget on the view's active page (the equivalent of Ctrl+A inside the widget) |
function SelectTextRange(Page, StartIndex, Count: Integer): Boolean | Reads or writes the TPdfView programmatic text-selection model without requiring user mouse input |
function SelectWordBox(const Word: TPdfWordBox): Boolean | Selects the text range represented by one TPdfWordBox on the current TPdfView page |
function SelectWordSpan(const Words: TPdfWordBoxes; StartIndex, EndIndex: Integer): Boolean | Selects a same-page span of TPdfWordBox records as one TPdfView text selection |
function SelectedText: WString | Returns the currently selected text as a wide string |
function SelectionCharCount: Integer | Returns the total number of characters currently selected |
property SelectionColor: TColor | Fill colour for the user-drag text selection overlay |
function SelectionRanges: TPdfUserSelectionRanges | Reads or writes the TPdfView programmatic text-selection model without requiring user mouse input |
function SelectionRectangles: TPdfRectangles | Reads or writes the TPdfView programmatic text-selection model without requiring user mouse input |
procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags) | TPdfView wrapper that forwards to TPdf.SetFormFieldFlags |
procedure SetFormFieldFlagsAt(X, Y: Integer; const Flags: TPdfFormFieldFlags) | TPdfView wrapper that forwards to TPdf.SetFormFieldFlagsAt |
function SetFocusedFormFieldTextDirection(Direction: TPdfFormTextDirection): Boolean | Changes the focused widget's in-memory text direction and repaints the page scene |
procedure SetReadingHighlight(const Rects: TPdfRectangles; PageNumber: Integer) | Controls the TPdfView reading-highlight overlay used by synchronised text-to-speech playback |
procedure SetReadingWord(const Word: TPdfWordBox) | Highlights one TPdfWordBox as the current spoken word on TPdfView |
function SetSelection(const Ranges: TPdfUserSelectionRanges): Boolean | Reads or writes the TPdfView programmatic text-selection model without requiring user mouse input |
ShowHint | Enables or disables the hint balloon shown when the mouse hovers over the PDF viewer |
property SmoothScroll: Boolean | Enables timer-driven segmented animation for line/page scrollbar commands. Thumb tracking remains immediate |
property StructureElements: TPdfStructureElements | TPdfView wrapper that forwards to TPdf.StructureElements |
TabOrder | Defines the position of the PDF viewer in the parent's tab cycle |
TabStop | Indicates whether the user can give focus to the PDF viewer by pressing the Tab key |
function Text(StartIndex: Integer = 0; Count: Integer = MaxInt): WString | TPdfView wrapper that forwards to TPdf.Text |
function TextInRectangle(Left, Top, Right, Bottom: Integer): WString; overload | TPdfView wrapper that forwards to TPdf.TextInRectangle |
property TextPage: FPDF_TEXTPAGE | TPdfView wrapper that forwards to TPdf.TextPage |
property Thumbnail: TBitmap | TPdfView wrapper that forwards to TPdf.Thumbnail |
property Touch | Documents the Touch member published by TPdfView |
function TrackReadingWordAt(PageNumber, CharIndex: Integer): Integer | Maps a page character offset to the containing TPdfWordBox, highlights it, and returns the word index |
property Transparent: Boolean | TPdfView wrapper that forwards to TPdf.Transparent |
procedure UpdatePage | TPdfView wrapper that forwards to TPdf.UpdatePage |
Visible | Shows or hides the PDF viewer |
property WebLink[PageNumber, Index: Integer]: TWebLink | TPdfView wrapper that forwards to TPdf.WebLink |
function WebLinkAtPos(X, Y: Integer; out PageNumber: Integer): Integer; overload | Returns the web-link index at the screen pixel (X, Y) |
property WebLinkCount[PageNumber: Integer]: Integer | TPdfView wrapper that forwards to TPdf.WebLinkCount |
property WindowHandle: HWND | The control's native window or widget handle, interpreted for the chosen platform and widget set |
property Zoom: Double | Zoom factor where 1.0 = 100% (one PDF point = 1 screen pixel at 72 DPI) |
Lazy forward or backward document-wide text search that retains native PDFium handles for its current page only
TPdfProgressiveDocument derives from TPdf and keeps PDFium's native availability session alive whilst a remote or growing random-access stream receives requested byte ranges
Thread-safe transport-neutral scheduler for coalescing, prioritising, splitting, retrying, cancelling, and accounting for sparse PDF byte-range requests
Read-only bounded inventory and extraction of arbitrary physical PDF stream objects from the FPdfStreamInspect unit
TPdfReadingSession is a TTS-neutral read-aloud state machine that coordinates TPdfSpokenText chunks, host speech-engine callbacks, and TPdfView word-cursor highlighting
TPdfThumbnailView is a scrollable side-panel control from the FPdfThumbnail unit. It links to a TPdf component and renders one page thumbnail per row for page navigation