PDFium Delphi Component Docs

Signature PAdES · chiffrement PDF 2.0 · six normes ISO · Delphi / C++Builder / Lazarus

Tout ce qu'un moteur de rendu ne sait pas faire, écrit en Object Pascal

Un moteur affiche des pages et lit des structures. Il ne peut ni signer un document, ni écrire du chiffrement, ni valider une norme PDF, ni produire une révision linéarisée ou incrémentale. PDFium Delphi Component implémente tout cela par-dessus PDFium : plus de 62 000 lignes réparties dans 36 unités qui n'ont aucun équivalent dans l'API du moteur, plus l'architecture de visualiseur et de lecteur accessible — et chaque ligne est livrée sous forme de source

Lire la présentation complète Parcourir le catalogue de fonctionnalités

Ce que vous obtenez au-delà du moteur

Chaque point ci-dessous est une capacité livrée que vous pouvez vérifier dans la référence API et les démos

Des signatures numériques, pas seulement la lecture de signatures

Le moteur peut signaler qu'un dictionnaire de signature existe. Cette bibliothèque en crée un : PAdES baseline B-B, B-T, B-LT et B-LTA selon ETSI EN 319 142-1, CMS / CAdES SignedData conformément à la RFC 5652, requêtes d'horodatage RFC 3161, injection de Document Security Store, horodatages d'archive et validation de la confiance de la chaîne de certificats. La signature à distance et HSM scinde l'opération afin que la clé privée n'ait jamais à atteindre le poste de travail

SignPades / ValidatePadesTrust / PreparePadesRemoteSignature

Un chiffrement que vous écrivez, pas seulement que vous ouvrez

AES-256 ISO 32000-2 avec la dérivation de clé R6 de l'algorithme 2.B, le balayage complet du chiffrement des flux et des chaînes, jetons AES-GCM ISO/TS 32003 et PDF MAC ISO/TS 32004. Les primitives AES, SHA-2, SHA-3, HMAC et ASN.1 sont en Object Pascal pur, vérifiées par rapport aux vecteurs de test FIPS publiés — aucune bibliothèque C externe n'entre dans votre déploiement ni dans votre revue de sécurité

SaveAsEncrypted; FPdfAes / FPdfSha512 / FPdfAsn1

Un écrivain PDF que le moteur ne possède pas

Le moteur propose un seul enregistrement séquentiel du fichier entier. Cette bibliothèque écrit ses propres révisions par-dessus : Fast Web View linéarisé avec tables d'indications de l'Annexe F, empaquetage object-stream et xref-stream, et révisions incrémentales des seuls objets modifiés qui préservent la sortie précédente à l'octet près. Les fichiers endommagés bénéficient de politiques de chargement strictes, compatibles et de récupération avec des diagnostics structurés au lieu d'une réparation silencieuse

SaveAsLinearized / SaveAsObjectStream / BeginIncrementalSave / SaveAsRepaired

Extraction de contenu au-delà du texte brut

GetStructuredText construit une hiérarchie page / bloc / ligne / segment stylé à partir de la géométrie des caractères et de la sémantique Tagged PDF. ExtractTables détecte les tableaux à bordures et alignés sur les espaces, préserve les cellules fusionnées et produit du CSV ou du JSON. BuildReflowDocument transforme un PDF à mise en page fixe en HTML sémantique. XFDF et FDF échangent les données de formulaires et 18 sous-types d'annotations — des formats pour lesquels le moteur n'expose aucune API

ExtractTables / BuildReflowDocument / ExportXFDF

La plus large couverture d'IDE de sa catégorie

Delphi / C++Builder (RAD Studio XE5 jusqu'à 13.1 Florence) ainsi que Lazarus / Free Pascal 3.8+, Win32 et Win64. Trois familles d'IDE partagent les mêmes PDF de référence et les mêmes suites de régression

1257 cas de test Pascal + 515 C++, alignés à l'octet près

Spectre complet des normes PDF

Sortie PDF/A-1b (SaveAsPdfA) + validation (ValidatePdfA), plus des validateurs PDF/UA, PDF/E, PDF/X, PDF/R et PDF/VT avec codes de résultat au niveau des clauses, injection de marqueurs et contrôle de conformité de version. PDF/A couvre les parties 1 à 4 de l'ISO 19005, PDF/X atteint X-6, PDF/VT inclut l'empaquetage de flux VT-2s

Unités dédiées FPdfPdfa/Pdfua/Pdfe/Pdfx/Pdfr/Pdfvt.pas

Lecture haute voix d'accessibilité / basse vision

TPdfReadingSession orchestre la lecture haute voix pour les moteurs TTS hôtes (unités de lecture au niveau phrase, surlignage au niveau mot, mappage du texte prononcé) ; plus les transformations basse vision InvertPdfBitmap, GrayscalePdfBitmap, DuotonePdfBitmap et la visualisation en duo-tone nocturne en direct

Une couche d'accessibilité que la plupart des wrappers ne possèdent pas du tout

Rendu progressif sans copie + annulable

Le chemin de rendu écrit la sortie PDFium directement dans le tampon DIB du TBitmap de destination, en évitant une copie de pixels pleine page à chaque trame ; RenderPageProgressive interroge un jeton d'annulation entre les itérations et peut être interrompu en plein rendu

Économise une copie largeur×hauteur×4 octets par trame en haute résolution

Streaming à la demande pour les PDF de plusieurs gigaoctets

Grâce à l'adaptateur TStream à la demande de LoadCustomDocument, PDFium lit par bloc — les documents de plusieurs gigaoctets, distants ou adossés à une base de données se chargent sans copie en mémoire, et une première vue exploitable est atteinte presque immédiatement

Documents de 2.x Go : première vue quasi instantanée

Trois composants + 33 démos partagées

TPdf (moteur de document), TPdfView (visualiseur interactif), TPdfThumbnailView (navigation par vignettes) ; 33 démos COMMON partagées entre trois IDE, couvrant la visualisation, la recherche, le remplissage de formulaires, la fusion/découpage, l'export par lots, l'impression, l'audit de sécurité, les rapports de préflight et plus encore

PDFViewer / PreflightReport / SecurityAudit / StandardsLab etc.

Valeurs par défaut axées sécurité

Liste d'autorisation des actions de lien (LinkOptions), actions de lancement désactivées par défaut, et une démo SecurityAudit pour auditer les surfaces de risque — sécurisé dès la sortie de la boîte plutôt que d'ouvrir par défaut des actions dangereuses

Adapté aux déploiements sensibles à la sécurité finance / santé

Source incluse · libre de droits · support à long terme

Livré avec la source Pascal, aucune redevance d'exécution, maintenance à long terme. Fournit les pdfium.dll et pdfium.v8.dll Win32/Win64 (avec V8/XFA activé), avec des hooks de rendu Skia optionnels

Aucuns frais par déploiement

Les preuves

3Familles d'IDE : Delphi / C++Builder / Lazarus
6+Normes PDF : A / UA / E / X / R / VT
33démos COMMON partagées sur trois IDE
1770+cas de test de régression Pascal + C++

Qui devrait choisir PDFium Delphi Component

Visualiseurs / lecteurs de documents

Visualiseurs PDF embarqués nécessitant une qualité de rendu et une interaction de niveau production (sélection de texte, surlignage de recherche, liens, zoom, deux pages en continu)

Accessibilité / technologies d'assistance

Orchestration de la lecture haute voix et transformations basse vision pour les utilisateurs malvoyants — une couche que la plupart des wrappers PDF ne possèdent pas du tout

Chaînes de conformité / préflight

Besoin de génération et de validation PDF/A, d'accessibilité PDF/UA, de contrôle de conformité de version et de rapports de préflight adaptés à l'intégration continue

Documents volumineux / distants

PDF de plusieurs gigaoctets ou adossés à une base de données qui doivent se charger à la demande plutôt que d'être entièrement conservés en mémoire

Équipes multi-IDE

Équipes utilisant à la fois Delphi, C++Builder et Lazarus — un même ensemble de composants, les mêmes références, les mêmes démos

Déploiements sensibles à la sécurité

Scénarios finance, santé et gouvernement avec un contrôle strict des actions de lien / lancement

Affichez une page en quelques lignes

Pas d'interop C écrite à la main — des composants Pascal natifs directs :

uses PDFium;

var
  Pdf: TPdf;
  Bmp: TBitmap;
begin
  Pdf := TPdf.Create(nil);
  try
    Pdf.FileName := 'report.pdf';
    Pdf.Active := True;
    Pdf.PageNumber := 0;              // pages are zero-based

    Bmp := Pdf.RenderPage(0, 0,
      Round(PointsToPixels(Pdf.PageWidth, 150)),
      Round(PointsToPixels(Pdf.PageHeight, 150)));
    try
      Bmp.SaveToFile('page1.bmp');
    finally
      Bmp.Free;
    end;
  finally
    Pdf.Free;
  end;
end;

Prochaines étapes

Commencez par la présentation du produit et le Démarrage rapide, parcourez le catalogue complet de fonctionnalités et les Exemples, ou lisez les Notes de version pour les dernières livraisons