PDFium Delphi Component är ett heltäckande komponentbibliotek i professionell klass som ger Delphi- och C++Builder-applikationer kraftfulla möjligheter till PDF-bearbetning och visning. Det använder renderingsmotorn PDFium för sidrendering och dokumentläsning och implementerar i Object Pascal allt som motorn inte tillhandahåller
Den skillnaden är viktig när du utvärderar biblioteket. PDFium ritar sidor, extraherar text och läser befintliga strukturer. Det kan inte signera ett dokument, skriva kryptering, validera en PDF-standard eller producera en linjäriserad eller inkrementell revision. PDFium Delphi Component levererar ungefär 115 000 rader Object Pascal över 55 enheter, och mer än 62 000 av dessa rader ligger i 36 enheter som inte har någon motsvarighet i PDFium-API:et alls — kryptografi, signaturer, kryptering, standardefterlevnad, PDF-serialisering, utbyte av formulärdata, layout och textformning. Allt levereras som källkod
Biblioteket består av tre registrerade komponenter: TPdf för dokumentbearbetning och manipulation med 475 publika medlemmar, TPdfView för interaktiv visuell presentation med 152, samt TPdfThumbnailView för sidnavigering. Oavsett om du behöver bygga en enkel PDF-visare, ett arbetsflöde för signerade dokument, en arkivkonverteringspipeline eller ett komplett dokumenthanteringssystem, ger PDFium Delphi Component dig de verktyg och den flexibilitet du behöver
Följande förmågor har ingen motsvarighet i PDFium C-API:et. Var och en implementeras av PDFium Delphi Component i Object Pascal, verifieras mot publicerade ISO-, ETSI-, IETF- eller FIPS-klausuler, och finns tillgänglig som källkod
Komplett signering, inte signaturläsning. PDFium kan rapportera att en signaturordbok finns; PDFium Delphi Component skapar en
SignPades, SignPadesToStream och SignPadesBytes/Certs, /OCSPs och /CRLs, VRI-ordböcker per signatur och markören /Extensions /ESIC/SubFilter /ETSI.RFC3161 som täcker hela filen, för B-LTAICmsSigner-gränssnitt som vilken annan backend som helst kan implementeraPreparePadesRemoteSignature och CompletePadesRemoteSignature delar upp operationen så att den privata nyckeln kan stanna kvar inuti en fjärrtjänst eller hårdvarumodulValidatePades rapporterar den högsta baslinje dokumentet når plus problemkoder på klausulnivå; ValidatePadesTrust och ValidatePadesTrustAsync lägger till tillitskontroll av certifikatkedjorSignPadesWithPdfA konverterar till PDF/A-4 och signerar i ett anrop, enligt EN 319 142-1 Annex A.7PDFium öppnar krypterade filer. Det skriver inte kryptering. PDFium Delphi Component implementerar skrivsidan mot ISO 32000-2 och dess tekniska specifikationer
SaveAsEncrypted med V=5 / R=5 / R=6-nyckelhärledning, inklusive hashiterationen i algoritm 2.B, och ordboksposterna /O /U /OE /UE /Perms/Length-korrigering och en ombyggd korsreferenstabell/AuthCode-token — CMS AuthenticatedData med HKDF-nyckelhärledning, key wrapping och HMAC-verifieringSex ISO-standardfamiljer, var och en med en validerare som returnerar resultatkoder på klausulnivå och en matchande sparnings- eller markörinjektionsväg
Motorn erbjuder en sekventiell sparning av hela filen. Applikationer behöver ofta mer än så, därför skriver PDFium Delphi Component egna revisioner ovanpå motorns semantiska utdata
SaveAsLinearized producerar Fast Web View-filer med förstasidesgruppering, två korsreferensavsnitt och hinttabeller för sidoffset och delade objekt enligt Annex FSaveAsObjectStream grupperar kvalificerade objekt i /ObjStm med sidlokal ordning och komplett typ-2-korsreferenstäckningBeginIncrementalSave och CommitIncrementalSave lägger bara till ändrade och nya indirekta objekt till krypterade eller okrypterade källor och bevarar tidigare utdata byte för byte tillsammans med /Prev, /Encrypt, /Info och den permanenta /ID; en commit utan ändringar gör att filen inte växerSaveAsRepaired skriver en kopia med en enda revision och verifierar om den med en oberoende strict-inläsning innan den levererasTPdf.PdfVersion återanvänder PDFiums parserstatus och gör bara en åtta byte stor huvudkontroll i stället för att parsa om källdokumentetTPdfRandomAccessStore håller mellanliggande data i minnet upp till SaveMemoryLimit och migrerar sedan till en exklusiv delete-on-close-temporärfil; efterbearbetningen vid kärnsparning använder samma policy för alla tre arbetsytorna, medan standarduppdateringar av open action och sidetiketter i katalogen använder avgränsade fönster och ett glesindex/AF-arrayer kopplade till katalogen eller en målsida, med de åtta relationsvärdena i Table 45IPdfOcrProvider accepterar valfri igenkänningsmotor — komponenten tillhandahåller sidbitmappar och skriver det resulterande sökbara textlagret, med status per sida och hopp över befintlig textGetStructuredText bygger en hierarki med sida / block / rad / stylade span från teckengeometri och Tagged PDF-semantik; ExtractTables och ExtractDocumentTables hittar tabeller med kanter och tomrumsjustering, bevarar sammanslagna celler, poängsätter konfidens och ger CSV eller JSONBuildReflowDocument förvandlar en PDF med fast layout till ett nodträd vars säkra HTML-utdata bevarar rubriker, stycken, listor, figurer, sidavsnitt och tabellspanMeasureText och WrapText ger ordvis radbrytning utan att lägga till något på en sidaTPdfStreamInspector avkodar godtyckliga strömobjekt under explicita budgetar för källa, rådata, dekodad storlek, expansionsgrad och strömantal, och returnerar en strukturerad status i stället för att tömma minnet på en konstruerad filHjärtat i systemet för PDF-bearbetning. TPdf hanterar alla operationer på dokumentnivå inklusive inläsning, sparande, textextraktion, formulärbearbetning och metadatahantering
En sofistikerad visuell kontroll som erbjuder en rik PDF-visningsupplevelse med fullständiga möjligheter till användarinteraktion
TStream-adaptrar via LoadCustomDocument, med policys compatible, strict och recovery plus strukturerad xref-diagnostikSaveAsRepairedSaveAsPdfA / SaveAsPdfAToStream med medföljande sRGB ICC-profil och stöd för anpassad profilValidatePdfA och den skrivskyddade egenskapen PdfAConformanceMergeFiles (batchsammanslagning med avgränsade källor), ImportPagesByIndex (delmängdsimport), ImportNPagesToOne (N-up rutnät), MovePages (omordning på plats)CreateXObjectFromPage och InsertFormObjectFromXObjectRenderPageProgressive och IPdfCancellationTokenTPdfProgressiveDocument, inklusive glesa byteintervall-tips, prioriterad intervallschemaläggning, avgränsade återförsök, avbrytning samt tillgänglighetsgrindar för dokument, formulär och sidorSaveAsLinearized, inklusive förstasidesgruppering, två korsreferensavsnitt och hinttabeller för sidoffset och delade objekt enligt Annex FSaveAsObjectStream, inklusive avgränsade ObjStm-grupper, sidlokal ordning och komplett typ-2-xref-täckningBeginIncrementalSave och CommitIncrementalSave, inklusive bevarande av krypterat prefix, ärvda säkerhetsparametrar, no-op-commits, strikt validering vid återöppning, beständiga sidofiler, atomisk ersättning, återställning och statistik per commitTPdfRandomAccessStore och SaveMemoryLimit, inklusive säker spill till temporärfil, positionerad I/O och diagnostik för toppvärde per sparningFitMode väljer hur sidan placeras i viewporten (manuell zoom, faktisk storlek, anpassa sida, anpassa bredd); återapplicera automatiskt vid Resize / sidbytePageColor separerar bakgrunden för den renderade PDF-sidan från den omgivande kontrollens Color för mörkt läge i visareHighlightSearchText och ClearHighlightPageShadowSize / PageShadowColor) och sidram (PageBorderColor)LinkOptions) och händelserna OnAnnotationLinkClick / OnWebLinkClickAllowUserPageChange, ChangePageOnMouseScrolling, AllowUserTextSelection) för kiosker och skrivskyddade integrationerTPdfThumbnailView| Aspekt | Detaljer |
|---|---|
| Renderingsmotor | Google PDFium - Industristandard, beprövad PDF-motor |
| PDF-stöd | PDF-versioner 1.0 till och med 1.7, krypterade och lösenordsskyddade filer |
| Plattformskompatibilitet | Windows 32-bitars och 64-bitars applikationer |
| IDE-stöd | Delphi XE5 / C++Builder XE5 (RAD Studio XE5) till och med Delphi/C++Builder 13.1 Florence (RAD Studio 13.1), Lazarus 3.8+ |
| Teckenkodning | Fullständigt Unicode-stöd, flerspråkig textbearbetning |
| Minneshantering | Optimerad för stora dokument, effektiv resursanvändning |
| Trådsäkerhet | Entrådad design (enligt PDFiums krav) |
PDFium Delphi Component följer ett lagerbaserat arkitekturmönster som tydligt separerar ansvarsområden och maximerar återanvändbarhet av kod:
| Lager | Filer | Ansvar |
|---|---|---|
| VCL-komponenter | PDFium.pas, FPdfThumbnail.pas | Delphi VCL-komponenter (TPdf, TPdfView, TPdfThumbnailView) med designtidsstöd |
| API-bindningar | 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 | Deklarationer av funktionspekare för anrop till PDFium DLL |
| PDF/A-pipeline | FPdfPdfa.pas | Skapande av PDF/A-1b (XMP-injektion, sRGB ICC OutputIntent, kataloguppdatering) och validering (detektering av konformans, uppräkning av problem) |
| Asynkron infrastruktur | FPdfAsync.pas | IPdfCancellationToken / IPdfCancellationTokenSource, singleton-objektet PdfNoCancellationToken samt hjälparen TPdfFuture<T> för långvarig rendering och export |
| Geometrihjälpare | FPdfMatrix.pas | Objektorienterad omslagning av FS_MATRIX med hjälpmetoder för Translate, Scale, Rotate, Flip, Skew och Multiply |
| Sidoperationer | FPdfPageOps.pas | Omslagningar av FPDF_ImportPagesByIndex, FPDF_ImportPages, FPDF_ImportNPagesToOne och FPDF_MovePages, skalbar filbaserad batcheschemaläggning, samt Form-XObject-hjälpare (CreateXObjectFromPage / InsertFormObjectFromXObject) |
| Sidopanel för miniatyrbilder | FPdfThumbnail.pas | TPdfThumbnailView — rullbar sidopanel med miniatyrbild per sida med hover, markering och OnPageClick-navigering |
| Nativ motor | DLLs\Win32|Win64\pdfium.dll och pdfium.v8.dll | Google PDFiums nativa renderingsmotor, med valfria V8-aktiverade builds |
TPdf-medlemmar och 36 körklara projekt minskar utvecklingstidenPDFium Delphi Component är utformat för omedelbar produktivitet. Komponentbiblioteket innehåller:
Oavsett om du bygger en enkel PDF-visare eller ett komplext system för dokumentbearbetning ger PDFium Delphi Component grunden för professionell PDF-funktionalitet i dina Delphi- och C++Builder-applikationer