Kernkomponenten
- TPdf – Haupt-Komponente zur PDF-Dokumentverarbeitung für das Öffnen, Navigieren, Extrahieren von Text und Bearbeiten von PDF-Dokumenten
- TPdfView – Visuelle Komponente zur Anzeige und Interaktion mit PDF-Seiten
- TPdfThumbnailView – Scrollbares Miniaturansichts-Seitenpanel zur Seitennavigation
Dokumentoperationen
- Dokument laden – Laden von PDF-Dateien aus Datenträger, Speicher-Streams, Byte-Arrays oder bedarfsgesteuerten TStream-Adaptern über
LoadCustomDocument. PDFium liest Blöcke bedarfsweise, sodass mehrere Gigabyte große Dokumente sowie Remote- bzw. datenbankgestützte Quellen keine vollständige Kopie im Speicher benötigen.- Passwortschutz – Öffnen passwortgeschützter PDF-Dokumente und Meldung der wirksamen
UserPermissionsfür die authentifizierte Sitzung- Dokument erstellen – Erzeugen neuer PDF-Dokumente von Grund auf mit
CreateDocument,AddPage,AddText,AddImage,AddPicture,AddJpegImageundCreatePath- Dokument speichern – Speichern bearbeiteter Dokumente mit verschiedenen Optionen (inkrementell, Sicherheit entfernen) und expliziten PDF-Zielversionen von PDF 1.0 bis PDF 1.7
- PDF/A-1b-Ausgabe –
SaveAsPdfA/SaveAsPdfAToStreamergänzen den Basis-Speichervorgang durch ein inkrementelles Update, das einen XMP-Metadaten-Stream, ein sRGB-ICC-OutputIntent und einen aktualisierten Dokument-Catalog einfügt, sodass das Ergebnis PDF/A-1b-konform ist. Benutzerdefinierte ICC-Profile werden überTPdfASaveOptions.IccProfileDataunterstützt.- PDF/A-Validierung –
ValidatePdfAund die schreibgeschützte EigenschaftPdfAConformancedurchsuchen ein geöffnetes Dokument nach XMP-pdfaid-Markern, OutputIntent mit eingebettetem ICC und Verschlüsselungspräsenz und melden die Konformitätsstufe (pac1a,pac1b,pac2b,pac3b,pacNoneoderpacUnknown) sowie eine Liste vonTPdfAValidationIssue-Einträgen, die jedes gefundene Problem beschreiben- PDF-Versionskonformitätsprüfung – Wenn SaveAs PDF 1.0 bis PDF 1.7 ansteuert, lehnt der Schreiber jeden Dictionary-Eintrag, Filter, jeden Annotations-Subtyp, jeden Aktionstyp, jede Schriftart, jeden Farbraum oder jeden Verschlüsselungsparameter ab, der nach der gewählten Zielversion eingeführt wurde (z. B. JBIG2Decode, MarkInfo, OutputIntents, AES / AES-256, Polygon- / Caret- / Watermark- / Redact-Annotationen, JavaScript- / Trans- / SetState-Aktionen)
- Stream-Komprimierung – Automatische FlateDecode-Komprimierung stellt sicher, dass alle PDF-Streams beim Speichern optimal komprimiert sind; setzen Sie
Compressed := False, um diese in Debug-Pipelines abzuschalten- Dokumente zusammenführen – Importieren von Seiten aus anderen PDF-Dokumenten
- Teilmengen-Seitenimport –
ImportPagesByIndexkopiert ein explizites null-basiertes Index-Array aus einem Quelldokument, wobei InsertAt = 0 vor Seite 1 einfügt oder InsertAt = PageCount anhängt. Übergeben Sie ein leeres Index-Array, um jede Quellseite zu importieren.- N-up-Komposition –
ImportNPagesToOneliefert ein brandneuesTPdf, dessen Seiten NumX×NumY-Kompositionen der Seiten des Quelldokuments sind, dimensioniert in PDF-Benutzereinheiten (1 Einheit = 1/72 Zoll)- Seitenneuordnung –
MovePagesordnet Seiten an Ort und Stelle um, unter Verwendung eines null-basierten Index-Arrays und eines Zielindex für die erste verschobene Seite- Wiederverwendung von Seiten als Form XObject –
CreateXObjectFromPageerzeugt ein wiederverwendbaresTPdfXObject-Handle aus einer beliebigen Seite eines anderen Dokuments;InsertFormObjectFromXObjectfügt EINE Kopie der eingehüllten Seite in die aktuelle Seite ein. Ideal für Wasserzeichen, Vorlagen-Overlays und Workflows zum „Stempeln einer Seite auf viele". Das Ziel-Seitenobjekt kann überFPDFPageObj_SetMatrixund dieTPdfMatrix-Helfer positioniert, skaliert und gedreht werden.- Seitenverwaltung – Hinzufügen, Löschen und Manipulieren einzelner Seiten;
AddPage(0, ...)fügt die allererste Seite ein und aktiviert sie sofort- Seitenboxen – Lesen und Schreiben von MediaBox, CropBox, BleedBox, TrimBox und ArtBox auf der aktuellen Seite
- Catalog-Sprache – Lesen und Schreiben der im Catalog-Eintrag /Lang gespeicherten Dokumentsprache
- Trailer-Datei-IDs – Lesen permanenter und sich ändernder Trailer-/ID-Einträge als binäre Bytes
- Dokument-JavaScript-Aktionen – Auflisten von Aktionsnamen und Skripten der JavaScript-Namens-Baumstruktur auf Dokumentebene
- Tagged-PDF-Strukturbaum – Untersuchen logischer Strukturelemente, Zugänglichkeitstexte, Sprache, Marked-Content-IDs und Hierarchie für getaggte PDF-Seiten
- Viewer-Voreinstellungen – Lesen von
PrintCopies,PrintPageRanges,PrintScalingundPrintPaperHandlingaus dem Viewer-Preference-Dictionary des Dokuments; gespeicherte PDFs haben standardmäßig eine Fit-Height-Öffnungsaktion für die erste Seite
Textoperationen
- Textextraktion – Extrahieren von Text aus PDF-Seiten mit zeichengenauer Präzision über die Eigenschaften
Text,TextInRectangle, indizierteCharacter,CharacterRectangleundCharacterOrigin- Satzweise Leseeinheiten - TPdf.ReadingUnits, TPdf.DocumentReadingUnits, TPdfView.ReadingUnits und BuildReadingUnits liefern satzgroße TPdfReadingUnit-Records für synchronisiertes TTS-Zuhör-Lesen
- Wortweise Lesehervorhebung -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollowOrdnet einen Seiten-Zeichenversatz dem enthaltenden TPdfWordBox zu, hebt ihn hervor und gibt den Wortindex zurück; Hebt ein TPdfWordBox als aktuell gesprochenes Wort in TPdfView hervor; Löscht die aktuelle wortweise Lesecursor-Überlagerung in TPdfView; Steuert die Überlagerungsfarbe für den aktuellen wortweisen Lesecursor; Steuert, ob TPdfView das aktuell gesprochene Wort beim Lese-Tracking in den sichtbaren Bereich rollt- Lesealoud-Sitzungssteuerung –
TPdfReadingSession,TPdfSpokenText,SpokenTextAppend,BuildSpokenTextFromWords,SpokenToPageCharundEstimateSpokenWordIndexkoordinieren die TTS-Engine des Hosts, gesprochene Textblöcke, Wortpositions-Callbacks, geschätztes Tempo, Pause-/Fortsetzen-Verhalten und TPdfView-Wortcursor-Updates- Textsuche – Finden von Text mit Optionen für Groß-/Kleinschreibung, ganze Wörter und aufeinanderfolgende Suche mittels
FindFirst,FindNext,FindPrevious- Such-Hervorhebungs-Overlay –
TPdfView.HighlightSearchTextdurchsucht die aktuelle Ansichtsseite und zeichnet bei jedem Neuzeichnen eine echte alpha-überblendeteHighlightColor-Überlagerung über jede Übereinstimmung, wobei die Trefferanzahl zurückgegeben wird.ClearHighlightentfernt das Overlay; das Navigieren zu einer anderen Seite löscht es automatisch, da Treffer seitenspezifisch sind.HighlightColorist standardmäßigclYellowund wird veröffentlicht, sodass Anwendungen sie thematisch anpassen können.- Zeicheneigenschaften – Zugriff auf Schriftgröße, -gewicht, -winkel und Positionierung einzelner Zeichen mit den indizierten Eigenschaften
CharacterAngle,CharacterFontSize,CharacterFontWeight,CharacterGenerated,CharacterIsHyphenundCharacterMapError- Unterstützung europäischer Zeichen –
AddTextlädt und zwischenspeichert automatisch die passende System-TrueType-Schriftart, bevor ein Textobjekt erstellt wird, sodass akzentuierte tschechische, französische, deutsche, spanische, portugiesische, polnische und türkische Zeichen, die die in PDFium eingebauten Standardschriftarten nicht darstellen können, nun ohne Codeänderung korrekt dargestellt werden- Text hinzufügen – Hinzufügen neuer Texte zu PDF-Seiten mit benutzerdefinierten Schriftarten, Farben, Transparenz und Drehung
- Textobjekt-Positionierung – Festlegen der Positionen pro Zeichen für bestehende Textobjekte über
SetTextPositionsundTPdfSingleArray- Schriftartinformationen – Abruf von Schriftarteigenschaften einschließlich Familienname, Einbettungsstatus, Italic-Winkel, Ascent / Descent und Rohschriftdaten auf Basis einzelner Seitenobjekte
Annotationsunterstützung
- Annotationstypen – Unterstützung für Text-, Link-, Highlight-, Underline-, Strikeout- und viele weitere Annotationstypen
- Annotation erstellen – Programmgesteuerte Erstellung neuer Annotationen
- Annotation bearbeiten – Ändern bestehender Annotationseigenschaften einschließlich Farbe, Transparenz und Inhalt
- Link-Annotationen – Verarbeitung interner und externer Links mit Aktionsunterstützung
Formularunterstützung
- Accessors für sprachgesteuertes Formularausfüllen - FocusedFormFieldValue, FocusedFormFieldName und FocusedFormFieldDetails auf TPdf und TPdfView legen Wert, Namen und TPdfFormFieldInfo des aktuellen logischen Formularfelds für tastatur- oder sprachgesteuertes Formularausfüllen offen
- Formulartypen – Unterstützung für AcroForm- und XFA-Formulare
- Formularausfüllung – Interaktives Ausfüllen von Formularen mit JavaScript-Unterstützung
- V8-DLL-Auswahl – Setzen Sie
EnableV8Enginevor dem Laden, umpdfium.v8.dllaus dem passenden OrdnerDLLs\Win32oderDLLs\Win64zu verwenden, und fragen Sie die Verfügbarkeit von V8/XFA-Helfern überV8FeaturesAvailable,XfaBStrHelpersAvailableundGetRecommendedV8Flagsab- Feldzugriff – Lesen und Schreiben von Formularfeldwerten nach Index oder Position
- Feldinformationen – Zugriff auf Feldtyp, Flags, Namen und weitere Eigenschaften
- Feld-Flags – Aktualisieren von AcroForm-Feld-Flags nach Index oder Position über
SetFormFieldFlags/SetFormFieldFlagsAt, einschließlich Read-only-, Required-, Password- und Multi-select-Flags- Formular-Flattening –
GenerateFormAppearancesregeneriert den /AP-Erscheinungsbild-Stream für jedes Formular-Widget auf jeder Seite, undFlattenPage/FlattenAllPagesbacken Annotationen und Formularfelder dauerhaft in den statischen Seiteninhalt ein (nicht editierbar)- Formular-Widget-Textauswahl & Undo / Redo – Auf dem fokussierten AcroForm-Widget stellt die Ansicht
GetSelectedFormText(aktuell ausgewählter Text),SelectAllFormText(alle Zeichen auswählen) sowieFormUndo/FormRedo/FormCanUndo/FormCanRedo(Steuerung der widget-bezogenen Bearbeitungshistorie von PDFium) bereit. Alle sechs verhalten sich sicher als No-op, wenn die Ansicht inaktiv ist oder kein Widget fokussiert ist.
Bildoperationen
- Bildextraktion – Extrahieren von Bitmaps aus PDF-Seiten mit der indizierten Eigenschaft
Bitmap; durchlaufen SieBitmapCount, um jedes Bild auf den Datenträger zu speichern- JPEG-Einfügung –
AddJpegImagenimmt einen TStream mit rohen JPEG-Bytes entgegen und bettet das Bild ohne erneutes Kodieren als /DCTDecode-XObject ein- Picture-Unterstützung –
AddPictureakzeptiert einTPicture-Objekt mit automatischer Formatkonvertierung über die registrierten VCL-/LCL-Grafikklassen- Direkte Bildeinfügung –
AddImage(FileName)erkennt jedes mit den VCL- oder LCL-Grafikunits registrierte Format (BMP, PNG über PngImage, JPG, ...) und teilt die AddPicture-Pipeline.AddImage(TBitmap)überspringt den TPicture-Zwischenschritt, was Aufrufer vereinfacht, die bereits ein TBitmap aus Rendering- oder Batch-Generierungsarbeiten halten.- Bild-ICC-Profil – Bild-Seitenobjekte stellen ihre eingebetteten ICC-Profildaten bereit, sofern vorhanden (Binding für
FPDFImageObj_GetIccProfileDataDecoded)- Miniaturansicht-Erzeugung – Erzeugen von Seiten-Miniaturansicht-Bitmaps über die Eigenschaft
Thumbnailoder durch Rendering jeder einsbasierten Seite mitRenderPageThumbnail, ohnePageNumberzu ändern
Hilfs-Units
- Async-Infrastruktur –
FPdfAsyncstelltIPdfCancellationToken/IPdfCancellationTokenSourcefür kooperative Cancel-from-UI-Semantik, einen wiederverwendbarenPdfNoCancellationToken-Singleton und einen leichtgewichtigenTPdfFuture<T>-Helfer bereit, der einen Worker auf einem Hintergrund-Thread ausführt und einenTPdfFutureResult<T>-Envelope zurück an den Haupt-Thread sendet, wobei zwischen Erfolg, Abbruch und Fehler unterschieden wird- Stream-Adapter –
TPdfStreamAdapterverbindet einen Pascal-TStreammit denFPDF_FILEACCESS-Callbacks von PDFium, sodassLoadCustomDocumentBlöcke bedarfsweise liest, anstatt das gesamte PDF im Speicher zu puffern- Matrix-Komposition –
FPdfMatrixumschließt PDFiumsFS_MATRIXmit einer OO-API fürTranslate,Scale,Rotate,HorizontalFlip,VerticalFlip,CentralFlip,SkewundMultiply.Multiplyerstellt einen Snapshot der sechs Matrixelemente, bevor die neuen Zeilenwerte berechnet werden, und vermeidet so die Falle alternativer Pascal-Implementierungen, bei der frühere Elemente während desselben Aufrufs überschrieben werden und inkorrekte Kompositionen erzeugen.- Abbrechbares progressives Rendering –
TPdf.RenderPageProgressivesteuert PDFiumsFPDF_RenderPageBitmap_Start+RenderPage_Continue-Schleife und prüft zwischen den Iterationen über denIFSDK_PAUSE-Callback einIPdfCancellationToken, sodass langwierige High-DPI-Renderings mitten in der Seite abgebrochen werden können, anstatt bis zum Abschluss zu blockieren. Gibt einenTPdfProgressiveStatusvonprsDone,prsCancelledoderprsFailedzurück.- Zero-Copy-Render-Pfad –
RenderPage/RenderTile/RenderPageProgressiveschreiben die PDFium-Ausgabe direkt in den DIB-Puffer des Ziel-TBitmap, anstatt über einen internen Puffer zu staging, was eine Speicherkopie von Breite × Höhe × 4 Bytes pro Rendering einspart – besonders spürbar bei hoher DPI (Miniaturansicht-Panels, druckqualitativer Export, Batch-Export). Ein scanlineweiser Fallback-Pfad bleibt erhalten, wenn das Ziel-DIB nicht sicher umschlossen werden kann.- Low-Vision-Bitmap-Farbtransformationen - InvertPdfBitmap, GrayscalePdfBitmap und DuotonePdfBitmap transformieren gerenderte 32-Bit-TBitmap-Pixel direkt für invertierte, graue oder zweifarbige Low-Vision-Ansichten
Zeichenoperationen
- Pfadzeichnung – Erstellen von Pfaden mit Linien, Bézier-Kurven und geschlossenen Formen
- Objektentfernung – Entfernen von Seitenobjekten und Regenerieren des Seiteninhalts aus TPdf oder TPdfView
- Füllung und Strich – Konfiguration von Füllmodus, Farben, Transparenz und Stricheigenschaften
- Blend-Modi – Unterstützung für verschiedene PDF-Blend-Modi
- Linienstile – Konfiguration von Line-Cap, Line-Join und Strichbreite
Digitale Signaturen
- Signaturerkennung – Erkennen und Auflisten digitaler Signaturen in PDF-Dokumenten
- Signaturinformationen – Zugriff auf Signaturinhalt, Byte-Range, Sub-Filter, Grund und Zeit
- MDP-Berechtigungen – Abfrage der Berechtigungen für Modification Detection and Prevention
Anhangunterstützung
- Anhangzugriff – Lesen, Erstellen, Ändern und Löschen eingebetteter Dateianhänge
- Anhangnamen – Zugriff auf Anhang-Dateinamen
- Anhangtypen – Lesen von MIME-Subtype-Werten eingebetteter Dateien, sofern vorhanden
- Lesezeichen – Navigieren von Dokumentlesezeichen mit hierarchischer Unterstützung über das
Bookmarks-Array sowie die TraversierungshelferBookmarkChildren,HasBookmarkChildrenundBookmarkFrom- Benannte Zielorte – Zugriff auf benannte Zielorte nach Index oder Name über
Destination,DestinationByNameundDestinationCount- Seitenbeschriftungen – Abruf von Seitenbeschriftungen für jede Seite über
PageLabel; nützlich, wenn Dokumente römische Ziffern für Frontmatter verwenden- Web-Links – Erkennen und Navigieren von Web-Links auf Seiten mit
WebLink,WebLinkCountundTPdfView.WebLinkAtPos- Link-Annotationen – Zugriff auf Link-Annotationen mit Aktions- und Zielinformationen über
LinkAnnotation,LinkAnnotationCountundTPdfView.LinkAnnotationAtPos- Sichere Behandlung von Link-Klicks – TPdfView löst
OnAnnotationLinkClick/OnWebLinkClick-Ereignisse vor der automatischen Goto-/URI-Behandlung aus, wobei Launch-Aktionen standardmäßig deaktiviert sind. Die Erkennung von Link-Klicks läuft nur, wenn die Geste ein Klick ist und nicht ein Ziehen, unter Verwendung eines frischen MouseDown-Ankers, sodass Schwenkgesten unverändert über den vorhandenen Bildlauf-Pfad fließen.
Rendering
- Hochwertiges Rendering – Rendern von Seiten auf einen Device Context, ein Bitmap oder eine Kachel über
RenderPage/RenderTile, mit Zero-Copy-Direktschreibvorgängen in den Ziel-DIB-Puffer- Abbrechbares progressives Rendering –
RenderPageProgressivesteuert die progressive Schleife von PDFium und prüft zwischen den Iterationen einIPdfCancellationToken, wobeiprsDone,prsCancelledoderprsFailedzurückgegeben wird. Beim Abbruch hält das Bitmap die bis dahin geleistete Teilarbeit.- Render-Optionen – LCD-Textoptimierung (
reLcd), Annotationen (reAnnotations), Graustufen und Druckmodus-Flags- Skia-Hooks – Low-Level-Bindings
FPDF_RenderPageSkiaundFPDF_FFLDrawSkiasind verfügbar, wenn Aufrufer einen externen SkCanvas bereitstellen (abhängig von den mitgelieferten DLL-Exporten)- Druckmodus-Auswahl – Festlegen von EMF-, nur-Text-, PostScript-, Pass-Through-, Image-Mask- und Type-42-PDFium-Druckmodi über
SetPdfPrintModemitTPdfPrintMode- Async-Overlay – TPdfView kann ein optionales Lade-Overlay anzeigen, während anwendungseigene Worker mit separaten TPdf-Instanzen rendern
- Seitenrotation – Unterstützung für Drehungen um 0, 90, 180 und 270 Grad (
ro0,ro90,ro180,ro270)- Transparenzerkennung – Die Eigenschaft
Transparentmeldet, ob ein Objekt auf der aktuellen Seite Transparenz aufweist, einschließlich Blend-Modi und partiellem Alpha
Anzeige (TPdfView)
- Anzeigemodi –
dmSingleContinuous,dmTwoPageContinuousunddmTwoPageContinuousWithCover(das Deckblatt steht allein, dann geht es mit zweiseitigen Spreads weiter). Der unit-weite HelferComputeSpreadPagesstellt die Spread-Page-Mathematik bereit, ohne einen Viewer zu instanziieren.- Fit-Mode –
FitModebestimmt, wie die Seite im Ansichtsbereich sitzt:pfmNone(manueller Zoom),pfmActualSize(100 %),pfmFitPage(gesamte Seite passt in den Ansichtsbereich) undpfmFitWidth(Seitenbreite entspricht der Ansichtsbereichsbreite). Der aktive Fit-Mode wird automatisch bei Resize und bei einem Seitenwechsel erneut angewendet; das direkte Setzen von Zoom hebt den aktiven Fit-Mode auf (FitMode wechselt zurück zupfmNone) und entspricht damit der gängigen Konvention von PDF-Viewern.- Zoom-Steuerung – Variabler Zoom mit den seitenbezogenen Helfern
PageZoom,PageWidthZoom,PageHeightZoomundActualSizeZoom- Seitenfarbe –
PageColortrennt den gerenderten PDF-Seitenhintergrund von derColor-Eigenschaft des umgebenden Steuerelements. Standard istclWhite, sodass PDF-Seiten unabhängig vom Theme der Host-Anwendung papierweiß gerendert werden. Dark-Mode-Viewer können den Bildlaufbereich dunkel lassen und die eigentliche PDF-Seite weiß (oder in jeder anderen von der Anwendung gewählten Farbe) belassen.- Interaktive Textauswahl – Endbenutzer können Text auf PDF-Seiten per Ziehen auswählen, mit Hit-Test-Auto-Switching zwischen Auswahl und Schwenken: Klicken auf ein Zeichen startet einen Auswahl-Drag, Klicken auf Whitespace schwenkt. Doppelklick wählt das Wort aus, Dreifachklick wählt die Zeile aus,
Ctrl+Awählt die Seite aus (in Spread-Modi beide Seiten),Ctrl+Ckopiert alsCF_UNICODETEXT,Shift+Pfeiltastenerweitern die Auswahl, beim Überfahren von Text wechselt der Cursor zucrIBeam, und das Ziehen an den Rand des Viewers scrollt die Seite automatisch. Neu veröffentlicht:SelectionColorundOnSelectionChange; neu öffentlich:HasSelection,SelectedText,SelectionCharCount,ClearSelection,SelectAll,CopySelectionToClipboard. Spread-Anzeigemodi wählen über beide sichtbaren Seiten hinweg aus, mit CR/LF-Verknüpfung. Ein voreingestelltes Kopier-Popup bei Rechtsklick wird automatisch angebracht, wenn der Host kein eigenesPopupMenuzugewiesen hat. Über das v1.17.0-FlagAllowUserTextSelectionfür Kiosk-Hosts steuerbar.- Koordinatenzuordnung – Umrechnung zwischen Viewer-Gerätekoordinaten und PDF-Seitenkoordinaten mit
DeviceToPage/PageToDevice, einschließlich Overloads, die einTRectentgegennehmen und einTPdfRectanglezurückgeben- Textauswahl und Hit-Testing – Auflösen von Zeichen unter Viewer-Punkten mit
CharacterIndexAtPosund Zeichnen von Textauswahl-Hervorhebungen überPaintSelection- Maus & Tastatur – Volle Unterstützung von Eingabegeräten mit Maus-Drag-Bildlauf, PgUp / PgDn / Ctrl+Home / Ctrl+End-Shortcuts sowie Mausrad-Hoch / Mausrad-Runter-Seitennavigation. Ctrl+Mausrad ist für den Anwendungszoom reserviert und wird vom Navigations-Handler übersprungen.
- Sperrung von Benutzereingaben –
AllowUserPageChangesteuert die Tastatur-Seitenkürzel,ChangePageOnMouseScrollingsteuert die Seitensprünge per Mausrad, undAllowUserTextSelectionsteuert Maus-/Tastatur-Textauswahl-Eingaben. Alle drei stehen standardmäßig auf True; setzen Sie sie auf False, um Kioske, Vorschaupanels oder schreibgeschützte Einbettungen ohne Subclassing zu sperren.- Async-Render-Overlay –
AsyncRendering,LoadingTextundLoadingColorzeichnen einen kleinen „Loading..."-Indikator über die gerenderte Seite, sodass Anwendungen, die ihren eigenen Worker für lange Renderings nutzen, eine konsistente visuelle Rückmeldung teilen. Standardwerte erhalten das bestehende Verhalten.TPdfserialisiert Render- und Page-Unload-Aufrufe nun pro Instanz; Anwendungen besitzen weiterhin den Worker-Dispatch und müssen vermeiden, ein Dokument zu mutieren, während ein Rendering läuft.- Sichere Behandlung von Link-Klicks –
LinkOptionsist ein veröffentlichtes Set, das das automatische Verhalten für die vier PDF-Link-Aktionstypen steuert:loAutoGoto(Seitensprung),loAutoOpenURI(ShellExecute),loAutoLaunch(ShellExecute) undloAutoEmbeddedGoto(reserviert). Standardmäßig sind nurloAutoGotoundloAutoOpenURIaktiviert;loAutoLaunchundloAutoEmbeddedGotobleiben aus, sodass ein versehentlicher Klick kein beliebiges Programm ausführen kann.OnAnnotationLinkClickundOnWebLinkClickwerden vor jeder automatischen Aktion ausgelöst und ermöglichen es der Anwendung, das Ereignis als Handled zu markieren oder umzuleiten.- Formularinteraktion – Interaktive Formularbearbeitung innerhalb des Viewers, sowie die Auswahl-/Undo-/Redo-Helfer aus v1.23.0
- Visuelles Styling –
PageShadowSize,PageShadowColorundPageBorderColorzeichnen einen optionalen Schlagschatten unter dem Seitenrechteck und einen Ein-Pixel-Rahmen darum;SmoothScrollanimiert nun Zeilen-/Seiten-Scrollbar-Befehle in timer-gesteuerten Segmenten, während das Thumb-Tracking sofort bleibt- Miniaturansicht-Navigation –
TPdfThumbnailView(UnitFPdfThumbnail) rendert eine Seiten-Miniaturansicht pro Zeile in einem scrollbaren Seitenpanel mit Hover- und Auswahl-Hervorhebung sowie Click-to-go-Navigation. Konzipiert, um neben einem TPdfView zu sitzen. Eigenschaften:CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColor; Ereignis:OnPageClick.- Live Low-Vision-Ansicht –
TPdfView.OptionsunterstütztreInvertundreNightDuotone, wobeiNightDuotoneInkundNightDuotonePaperdie Live-Nachtpalette vor dem Zeichnen der Overlays steuern
Komprimierung
- Automatische Komprimierung – Wenn die Eigenschaft
CompressedTrue ist (Standard), wird sichergestellt, dass alle PDF-Streams beim Speichern FlateDecode-komprimiert sind- Nachbearbeitung – Die Komprimierungs-Engine durchsucht gespeicherte PDF-Daten und komprimiert alle unkomprimierten Streams mit maximaler zlib-Komprimierung
- Cross-Reference-Neuerstellung – Erstellt die xref-Tabelle automatisch neu, wenn die Stream-Komprimierung die Byte-Offsets ändert
- Kein Overhead – Wenn alle Streams bereits komprimiert sind, werden die Daten unverändert durchgereicht
Sicherheit
- Passwortunterstützung – Öffnen passwortgeschützter PDF-Dokumente
- Berechtigungen – Lesen von Dokument- und Benutzerberechtigungen; das
SecurityAudit-Demo kombiniert Berechtigungen, Anhänge, Dokument-JavaScript, URI-/Launch-Links, Signaturen, XFA und V8-Verfügbarkeit zu einer schreibgeschützten Risikofläche mit TXT-/JSON-Berichtspeicherung und TXT-Kopieraktionen- Sicherheitsentfernung – Speichern von Dokumenten mit entfernter Sicherheit (sofern autorisiert)
- Druckmodi – Wahl zwischen EMF-, nur-Text-, PostScript-Level-2-/-3-, PostScript-Pass-Through-, EMF-Image-Mask- und Type-42-Druckmodi über die globale Funktion
SetPdfPrintMode- Viewer-Voreinstellungen – Sichtbarmachen der Autorenabsicht des Dokuments über
PrintCopies,PrintPageRanges(eins-basierte Seitenbereiche),PrintScalingundPrintPaperHandling;SetPdfPrintPaperHandlingDevModebildet den Duplex-Hinweis auf das Windows-DEVMODE.dmDuplexab- N-up-Druck – Die
PrintPreferences-Demos in Delphi, C++Builder und Lazarus zeigen N-up-Bogenkomposition (1 / 2 / 4 / 9 Seiten pro Bogen) mit Filterung gerader/ungerader Seiten, Graustufen-Rendering, optionalen 1-Pixel-Zellenrahmen, PDF-Autor-Druckvoreinstellungen und Duplex-Intent-Abbildung überSetPdfPrintPaperHandlingDevMode
Mitgelieferte Demos
Die Bäume
Demo\Delphi,Demo\CBuilderundDemo\Lazarusliefern lauffähige Beispielprojekte, die die aktive API-Oberfläche über alle drei IDE-Familien hinweg ausschöpfen. Highlights:
- PDFViewer / MultiPageViewer / SplitView – End-to-End-Nutzung von TPdfView: Laden, Navigieren, Zoomen, Drehen, zweiseitige Spreads, deckblattbewusste Layouts und Delphi-/C++Builder-/Lazarus-PDF-Vergleich nebeneinander mit synchronisierten Befehlen; die Viewer-Demos sind außerdem praktische Geschwindigkeitstests für mehrere Gigabyte große PDFs, bei denen 2.x GB große Dokumente nahezu sofort eine nutzbare erste Ansicht erreichen, während das Seitenrendering reaktionsfähig bleibt
- ViewerInteractionLab – Fokussierte TPdfView-Interaktionsbeispiele für Delphi, C++Builder und Lazarus zu Anzeigemodi, Fit-Modes, Seitenfarben, Drehung, Such-Hervorhebung, Textauswahl, Vorschau ausgewählten Texts, Zwischenablage-Aktionen und DeviceToPage-Koordinatenanzeige
- SearchAndSelect – Fokussierte Workflow-Beispiele für Delphi, Lazarus und C++Builder zum Auflisten aller seitenübergreifenden Suchergebnisse, Vorheriger-/Nächster-Treffer-Navigation, Doppelklick zum Springen zu einem Treffer,
HighlightSearchText, Suche mit Match-Case / Whole-Word,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelectionund Spread-Anzeigemodi- PreflightReport – Workflow-Demos für Delphi, Lazarus und C++Builder sowie ein Delphi-Konsolenbegleiter rund um das wiederverwendbare
FPdfPreflightReport, das Validierungsergebnisse für PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R und PDF/VT in Status-, Prioritäts-, Issue-Kategorie-, Issue-Kategorie-Zähler-, Nächste-Aktion-Zusammenfassungszeilen, Issue-Empfehlungen, Text- / Markdown- / JSON- / CSV-Vorschau, TXT- / HTML- / Markdown- / JSON- / CSV-Berichte, skriptfähige Berichtgenerierung, Batch-Listen- und Verzeichnisverarbeitung mit Bericht-Verzeichnis-Routing, TXT- / JSON- / HTML-Aggregat-Zusammenfassungen, CSV-Zeilenmanifeste, optionale Berichtsanhang-Einbettung und CI-Gating-Exitcodes überführt- ContentExtractionLab – Vereinheitlichter Inhaltsbestands-Workflow für Delphi, Lazarus und C++Builder zu Dokumentmetadaten, Seitentext, Seitenobjekten, Bildern, Anhängen, Links, Annotationen, Lesezeichen sowie Schrift-/Zeichenmetriken mit TXT-/JSON-Export, Alle-/Keine-Kategorieauswahl, Speichern der Quell-PDF und Bericht-Kopier-Aktionen
- WatermarkStamp – Wiederverwendbarer Form-XObject-Workflow für Delphi, Lazarus und C++Builder für zentrierte Wasserzeichen, Eckstempel und Seitenzahl-Beschriftungen über ein mehrseitiges Ziel-PDF
- CreatePDF – Erstellen eines mehrseitigen PDFs von Grund auf mit Text, Bildern, Pfaden, Tabellen und Wasserzeichen-Komposition; enthält eine Option „Europäischer Text“ zum Schreiben akzentuierter tschechischer / französischer / deutscher / spanischer / portugiesischer / polnischer / türkischer Texte zur Überprüfung der Schriftauswahl und der Unicode-Verarbeitung
- ExtractText / ExtractImages / ContentExtractionLab – Speichern von extrahiertem Text (einschließlich seitenweise getrennter Ausgabe) oder eingebetteten Bildern auf den Datenträger oder Erzeugen eines mehrkategorigen Inhaltsbestandsberichts in einem Durchgang
- FormFill – Lesen von AcroForm-Feld-Metadaten, Schreiben von Werten, Neuerzeugen von /AP-Erscheinungsbildern und Speichern entweder des editierbaren oder des geflachten Ergebnisses
- FontProperties – Untersuchen indizierter Zeichen-/Schrift-Metadaten über sowohl TPdf als auch TPdfView in Delphi, C++Builder und Lazarus
- MergePDF / SplitPDF – Zusammenführen mehrerer Quell-PDFs (mit dateiweiser Seitenbereichsauswahl, optionalem Ausgabepfad, Ausführungsprotokoll, Abbruch-Schaltfläche und Zusammenfassung nach Abschluss des Zusammenführens) oder Aufteilen eines PDFs in seitenweise Ausgabedateien
- PDFtoJpg / BatchExport – Einzelne oder gebatchte Mehrdatei-PDF-zu-JPG-Konvertierung für Delphi, C++Builder und Lazarus mit Gesamtfortschritt pro Datei, aktuellem Fortschritt pro Seite, DPI-/Qualitäts-/Passwort-Eingaben und einem kooperativ abbrechbaren Batch, gestützt auf
IPdfCancellationToken- StandardsLab – Workflow-Beispiele für Delphi, C++Builder und Lazarus zur Validierung von PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R und PDF/VT, Issue-Reporting und standardsorientierte Speichermechanismen
- PrintPDF / PrintPreferences – Standard-PDF-Druck für Delphi, C++Builder und Lazarus mit Vorschau, Seitenbereichen, Kopien, Collate, Fortschritt und Abbruch (PrintPDF), plus Delphi-/C++Builder-/Lazarus-N-up-Bogenkomposition mit Gerade-/Ungerade-Filterung und PDF-Autor-Druckvoreinstellungen (PrintPreferences)
- SecurityAudit – Schreibgeschützte Risikoflächen-Beispiele für Delphi, C++Builder und Lazarus zu Berechtigungen, Anhängen, JavaScript-Aktionen, URI-/Launch-Links, Web-Links, Signaturen, XFA-Status, V8-/XFA-Helfer-Verfügbarkeit und TXT-/JSON-Audit-Berichten
- Attachment – PDFs erstellen, eingebettete Dateianhänge hinzufügen / auflisten / extrahieren / löschen / speichern, mit MIME-Subtype-Anzeige
- ImageToPDF – Bild-Batch-Konvertierung in ein PDF, ein Bild pro Seite, für Delphi, C++Builder und Lazarus, mit Vorschau und Fortschritt pro Bild
Die Regressionssuiten für Delphi, C++Builder und Lazarus decken 147 (Pas) / 123 (C++) Testfälle ab, die dieselben Fixture-PDFs teilen, sodass das Verhalten Byte-genau über alle drei IDE-Familien hinweg übereinstimmt.
Plattformunterstützung
- Delphi – Delphi XE5 (RAD Studio XE5) bis Delphi 13.1 Florence (RAD Studio 13.1)
- C++Builder – C++Builder XE5 (RAD Studio XE5) bis C++Builder 13.1 Florence
- Lazarus – Unterstützung für Free Pascal / Lazarus
- Win32 / Win64 – Sowohl 32-Bit- als auch 64-Bit-Windows-Plattformen