PDFium Delphi Component is een uitgebreide, professionele componentbibliotheek die krachtige PDF-verwerkings- en weergavemogelijkheden biedt aan Delphi- en C++Builder-toepassingen. De bibliotheek gebruikt de PDFium-rendering-engine voor paginarendering en het lezen van documenten, en implementeert in Object Pascal alles wat die engine niet biedt
Dat onderscheid is belangrijk wanneer u de bibliotheek beoordeelt. PDFium tekent pagina's, extraheert tekst en leest bestaande structuren. Een document ondertekenen, versleuteling schrijven, een PDF-standaard valideren of een gelineariseerde of incrementele revisie uitschrijven, kan de engine niet. PDFium Delphi Component levert circa 115.000 regels Object Pascal verspreid over 55 units, waarvan meer dan 62.000 regels in 36 units staan die helemaal geen tegenhanger in de PDFium-API hebben — cryptografie, handtekeningen, versleuteling, standaardconformiteit, PDF-serialisatie, uitwisseling van formulierdata, layout en text shaping. Alles wordt als broncode geleverd
De bibliotheek bestaat uit drie geregistreerde componenten: TPdf voor documentverwerking en -manipulatie met 475 publieke members, TPdfView voor interactieve visuele presentatie met 152 members, en TPdfThumbnailView voor paginanavigatie. Of u nu een eenvoudige PDF-viewer, een workflow voor ondertekende documenten, een conversiepijplijn voor archivering of een compleet documentbeheersysteem wilt bouwen — PDFium Delphi Component biedt de gereedschappen en flexibiliteit die u nodig hebt
De volgende mogelijkheden hebben geen tegenhanger in de PDFium C-API. Elk daarvan is door PDFium Delphi Component in Object Pascal geïmplementeerd, geverifieerd tegen de gepubliceerde ISO-, ETSI-, IETF- of FIPS-clausules, en als broncode beschikbaar
Volledig ondertekenen, niet het lezen van handtekeningen. PDFium kan melden dat een signature dictionary bestaat; PDFium Delphi Component maakt er een
SignPades, SignPadesToStream en SignPadesBytes/Certs, /OCSPs en /CRLs, VRI-dictionaries per handtekening en de markering /Extensions /ESIC/SubFilter /ETSI.RFC3161 die het hele bestand dekken, voor B-LTAICmsSigner-interface die elke andere backend kan implementerenPreparePadesRemoteSignature en CompletePadesRemoteSignature splitsen de bewerking zo op dat de privésleutel in een externe service of hardwaremodule kan blijvenValidatePades rapporteert de hoogste baseline die het document bereikt plus probleemcodes op clausuleniveau; ValidatePadesTrust en ValidatePadesTrustAsync voegen vertrouwenscontrole van certificaatketens toeSignPadesWithPdfA converteert naar PDF/A-4 en ondertekent in één aanroep, volgens EN 319 142-1 Annex A.7PDFium opent versleutelde bestanden. Versleuteling schrijven doet de engine niet. PDFium Delphi Component implementeert de schrijfkant volgens ISO 32000-2 en de bijbehorende technische specificaties
SaveAsEncrypted met V=5 / R=5 / R=6-sleutelafleiding, inclusief de hash-iteratie van algoritme 2.B, en de dictionary-entries /O /U /OE /UE /Perms/Length-correctie en een herbouwde cross-reference tabel/AuthCode-tokens volgens ISO/TS 32004 — CMS AuthenticatedData met HKDF-sleutelafleiding, key wrapping en HMAC-verificatieZes ISO-standaardfamilies, elk met een validator die resultaatcodes op clausuleniveau retourneert en een bijpassend opslag- of markerinjectiepad
De engine biedt één sequentiële opslag van het hele bestand. Toepassingen hebben daar vaak meer nodig, dus PDFium Delphi Component schrijft eigen revisies bovenop de semantische uitvoer van de engine
SaveAsLinearized produceert Fast Web View-bestanden met first-page grouping, twee cross-reference secties en hint tables voor page offsets en gedeelde objecten volgens Annex FSaveAsObjectStream groepeert in aanmerking komende objecten in /ObjStm met pagina-lokale ordening en volledige type-2 cross-reference dekkingBeginIncrementalSave en CommitIncrementalSave voegen alleen gewijzigde en nieuwe indirecte objecten toe aan versleutelde of onversleutelde bronnen, waarbij de eerdere uitvoer byte voor byte behouden blijft, samen met /Prev, /Encrypt, /Info en het permanente /ID; een commit zonder wijzigingen maakt het bestand niet groterSaveAsRepaired schrijft een kopie met één revisie en verifieert die opnieuw met een onafhankelijke strikte load voordat deze wordt afgeleverdTPdf.PdfVersion hergebruikt de parserstatus van PDFium en voert slechts een controle van de acht-byte header uit in plaats van het brondocument opnieuw te parsenTPdfRandomAccessStore houdt tussenliggende data in het geheugen tot SaveMemoryLimit en migreert daarna naar een exclusief tijdelijk bestand dat bij sluiten wordt verwijderd; de nabewerking bij het opslaan hanteert hetzelfde beleid voor alle drie de werkgebieden, terwijl standaardupdates van de open-action- en page-label-catalogus begrensde vensters en een sparse index gebruiken/AF-arrays volgens ISO 32000-2 §7.11.4, gekoppeld aan de catalogus of een doelpagina, met de acht relatiewaarden uit Table 45IPdfOcrProvider accepteert elke herkenningsengine — de component levert pagina-bitmaps en schrijft de resulterende doorzoekbare tekstlaag, met status per pagina en overslaan van bestaande tekstGetStructuredText bouwt een hiërarchie van pagina / blok / regel / gestileerde span op basis van tekengeometrie en Tagged PDF-semantiek; ExtractTables en ExtractDocumentTables detecteren tabellen met randen en op witruimte uitgelijnde tabellen, behouden samengevoegde spans, kennen een betrouwbaarheidsscore toe en leveren CSV of JSONBuildReflowDocument zet een PDF met vaste layout om in een node-boom waarvan veilige HTML-uitvoer koppen, alinea's, lijsten, figuren, paginasecties en tabelspans behoudtMeasureText en WrapText verzorgen woordterugloop zonder iets aan een pagina toe te voegenTPdfStreamInspector decodeert willekeurige stream-objecten onder expliciete budgetten voor bron, ruwe data, gedecodeerde data, expansieratio en streamaantal, en retourneert een gestructureerde status in plaats van het geheugen te laten uitputten op een gemanipuleerd bestandHet hart van het PDF-verwerkingssysteem. TPdf handelt alle bewerkingen op documentniveau af, waaronder laden, opslaan, tekstextractie, formulierverwerking en metadatabeheer
Een geavanceerde visuele control die een rijke PDF-weergave-ervaring biedt met volledige mogelijkheden voor gebruikersinteractie
TStream-adapters via LoadCustomDocument, met compatible-, strict- en recovery-beleid plus gestructureerde xref-diagnostiekSaveAsRepairedSaveAsPdfA / SaveAsPdfAToStream met meegeleverd sRGB ICC-profiel en ondersteuning voor aangepaste profielenValidatePdfA en de alleen-lezen eigenschap PdfAConformanceMergeFiles (batch-merge met begrensde bronnen), ImportPagesByIndex (subset-import), ImportNPagesToOne (N-up raster), MovePages (in-place herordenen)CreateXObjectFromPage en InsertFormObjectFromXObjectRenderPageProgressive en IPdfCancellationTokenTPdfProgressiveDocument, inclusief sparse byte-range hints, geprioriteerde range-planning, begrensde retries, annulering en beschikbaarheidsgates voor document, formulieren en pagina'sSaveAsLinearized, inclusief first-page grouping, twee cross-reference secties en hint tables voor page offsets en gedeelde objecten volgens Annex FSaveAsObjectStream, inclusief begrensde ObjStm-groepen, pagina-lokale ordening en volledige type-2 xref-dekkingBeginIncrementalSave en CommitIncrementalSave, inclusief exact behoud van de prefix, no-op commits, continuïteit van klassieke xref en xref-streams, atomair vervangen van bestanden en statistieken per commitTPdfRandomAccessStore en SaveMemoryLimit, inclusief veilig uitschuiven naar een tijdelijk bestand, positioned I/O en piekdiagnostiek per saveFitMode bepaalt hoe de pagina in de viewport past (handmatig zoomen, werkelijke grootte, passend op pagina, passend op breedte); wordt automatisch opnieuw toegepast bij Resize of paginawisselingPageColor ontkoppelt de gerenderde achtergrond van de PDF-pagina van de Color van de omringende control voor donkere-thema viewersHighlightSearchText en ClearHighlightPageShadowSize / PageShadowColor) en paginarand (PageBorderColor)LinkOptions) en events OnAnnotationLinkClick / OnWebLinkClickAllowUserPageChange, ChangePageOnMouseScrolling, AllowUserTextSelection) voor kiosken en alleen-lezen embedsTPdfThumbnailView| Aspect | Details |
|---|---|
| Rendering-engine | Google PDFium - industriestandaard, grondig beproefde PDF-engine |
| PDF-ondersteuning | PDF-versies 1.0 tot en met 1.7, versleutelde en met wachtwoord beveiligde bestanden |
| Platformcompatibiliteit | Windows 32-bit- en 64-bit-toepassingen |
| IDE-ondersteuning | Delphi XE5 / C++Builder XE5 (RAD Studio XE5) tot en met Delphi/C++Builder 13.1 Florence (RAD Studio 13.1), Lazarus 3.8+ |
| Tekencodering | Volledige Unicode-ondersteuning, meertalige tekstverwerking |
| Geheugenbeheer | Geoptimaliseerd voor grote documenten, efficiënt gebruik van bronnen |
| Thread-veiligheid | Single-threaded ontwerp (volgens PDFium-vereisten) |
PDFium Delphi Component volgt een gelaagd architectuurpatroon dat verantwoordelijkheden duidelijk scheidt en de herbruikbaarheid van code maximaliseert:
| Laag | Bestanden | Verantwoordelijkheid |
|---|---|---|
| VCL-componenten | PDFium.pas, FPdfThumbnail.pas | Delphi VCL-componenten (TPdf, TPdfView, TPdfThumbnailView) met design-time ondersteuning |
| API-bindings | FPdfView.pas, FPdfDoc.pas, FPdfText.pas, FPdfEdit.pas, FPdfAnnot.pas, FPdfFormFill.pas, FPdfPageOps.pas, FPdfAttachment.pas, FPdfSignature.pas, FPdfStructTree.pas, FPdfDataAvail.pas, FPdfExtensions.pas, FPdfFWLEvent.pas, FPdfCompress.pas, FPdfUtils.pas | Function pointer-declaraties voor aanroepen van de PDFium-DLL |
| PDF/A-pipeline | FPdfPdfa.pas | PDF/A-1b-creatie (XMP-injectie, sRGB ICC OutputIntent, catalog-update) en validatie (conformiteitsdetectie, probleemopsomming) |
| Async-infrastructuur | FPdfAsync.pas | IPdfCancellationToken / IPdfCancellationTokenSource, singleton PdfNoCancellationToken en helper TPdfFuture<T> voor langlopend rendering- en exportwerk |
| Geometrie-helpers | FPdfMatrix.pas | OO-wrapper rond FS_MATRIX met helpers voor Translate, Scale, Rotate, Flip, Skew en Multiply |
| Paginabewerkingen | FPdfPageOps.pas | Wrappers voor FPDF_ImportPagesByIndex, FPDF_ImportPages, FPDF_ImportNPagesToOne, FPDF_MovePages plus schaalbare op bestanden gebaseerde batchplanning en Form-XObject-helpers (CreateXObjectFromPage / InsertFormObjectFromXObject) |
| Miniatuur-zijpaneel | FPdfThumbnail.pas | TPdfThumbnailView — scrollbaar miniatuurpaneel per pagina met hover, selectie en OnPageClick-navigatie |
| Native engine | DLLs\Win32|Win64\pdfium.dll en pdfium.v8.dll | Google PDFium native rendering-engine, met optionele builds met V8 ingeschakeld |
TPdf-members en 36 direct draaiklare projecten verkorten de ontwikkeltijdPDFium Delphi Component is ontworpen voor directe productiviteit. De componentbibliotheek omvat:
Of u nu een eenvoudige PDF-viewer of een complex documentverwerkingssysteem bouwt — PDFium Delphi Component legt de basis voor professionele PDF-functionaliteit in uw Delphi- en C++Builder-toepassingen