Kerncomponenten
- TPdf - Hoofdcomponent voor het verwerken van PDF-documenten: openen, navigeren, tekst extraheren en PDF-documenten bewerken
- TPdfView - Visueel component voor het weergeven van en interageren met PDF-pagina's
- TPdfReadingSession - Orkestratiecomponent voor hardop lezen voor host-TTS-engines en woordtracking in TPdfView
- TPdfThumbnailView - Scrollbaar miniatuur-zijpaneel voor pagina-navigatie
- Native LCL Platforms - Linux Qt6 en macOS Cocoa gebruiken native PDFium, correcte LP64-bindings, platformfont- en bestandsservices en echte bitmap-kanaalindelingen; zie native setup voor de gekwalificeerde Free Pascal/LCL-configuraties en capability-grenzen
Documentbewerkingen
- Documenten laden - Laad PDF-bestanden vanaf schijf, geheugenstreams, volledige byte-arrays, zero-based
Index/Countbyte-array-vensters of on-demand TStream-adapters viaLoadCustomDocument. De beleidsmodi compatible, strict en recovery voegen begrensde diagnostiek voor klassieke, hybride en xref-stream-tabellen toe zonder de semantische parser van PDFium te vervangen- Geverifieerde gerepareerde uitvoer -
SaveAsRepairedmaakt een volledige kopie met één revisie en laadt de xref- en paginastructuur daarvan onafhankelijk strikt in voordat bytes worden teruggegeven of een bestand atomair wordt vervangen- Getypeerde objectgraaf -
ExportObjectGraphlevert begrensde, getypeerde JSON voor directe waarden en waarden in object-streams, terwijlSaveAsObjectGraphPatchedgevalideerde wijzigingen in top-level dictionaries toepast als een gefaseerde incrementele revisie en het resultaat strikt inlaadt voordat het wordt afgeleverd- Wachtwoordbeveiliging - Open met wachtwoord beveiligde PDF-documenten en rapporteer de effectieve
UserPermissionsvoor de geauthenticeerde sessie- Documenten creëren - Bouw nieuwe PDF-documenten vanaf nul met
CreateDocument,AddPage,AddText,AddImage,AddPicture,AddJpegImageenCreatePath- Documenten opslaan - Sla gewijzigde documenten op met diverse opties (incrementeel, beveiliging verwijderen) en expliciete PDF-doelversies van PDF 1.0 tot en met PDF 1.7
- PDF/A-1b-uitvoer -
SaveAsPdfA/SaveAsPdfAToStreamnabewerken de basisopslag met een incrementele update die een XMP-metadatastream, een sRGB ICC OutputIntent en een bijgewerkte documentcatalogus injecteert, zodat het resultaat PDF/A-1b-conform is. Aangepaste ICC-profielen worden ondersteund viaTPdfASaveOptions.IccProfileData- PDF/A-validatie -
ValidatePdfAen de alleen-lezen eigenschapPdfAConformancescannen een geopend document op XMPpdfaid-markers, OutputIntent met ingebed ICC-profiel en aanwezigheid van versleuteling. Zij rapporteren het conformiteitsniveau (pac1a,pac1b,pac2b,pac3b,pacNoneofpacUnknown) plus een lijst metTPdfAValidationIssue-entries die elk gevonden probleem beschrijven- Validator voor PDF-versie-conformiteit - Wanneer SaveAs PDF 1.0 tot en met PDF 1.7 als doel heeft, weigert de writer elke dictionary-entry, filter, annotatie-subtype, actietype, lettertype, kleurruimte of versleutelingsparameter die na de gekozen doelversie is geïntroduceerd (bijv. JBIG2Decode, MarkInfo, OutputIntents, AES / AES-256, Polygon / Caret / Watermark / Redact-annotaties, JavaScript / Trans / SetState-acties)
- Stream-compressie - Automatische FlateDecode-compressie zorgt ervoor dat alle PDF-streams optimaal zijn gecomprimeerd bij het opslaan; stel
Compressed := Falsein om dit voor debug-pijplijnen uit te schakelen- Schaalbare batch-samenvoeging -
MergeFilesimporteert op bestanden gebaseerde bronnen met paginabereiken en wachtwoorden per bron, houdt hoogstens één brondocument open, en biedt beleid voor voortgang, annulering, stop- of skip-afhandeling, rollback, formulieren, outline, resources en viewer-voorkeuren- Subset-import van pagina's -
ImportPagesByIndexkopieert een expliciete zero-based index-array uit een brondocument, met InsertAt = 0 om voor pagina 1 in te voegen of InsertAt = PageCount om toe te voegen. Geef een lege index-array door om alle bronpagina's te importeren- N-up-compositie -
ImportNPagesToOneretourneert een gloednieuweTPdfwaarvan de pagina's NumX×NumY composieten zijn van de pagina's van het brondocument, in PDF-user-units (1 unit = 1/72 in)- Pagina's herordenen -
MovePagesordent pagina's in-place opnieuw met behulp van een zero-based index-array en een doelindex voor de eerste verplaatste pagina- Validatie van paginaplannen -
ValidatePagePlansimuleert mappings voor verwijderen, verplaatsen, invoegen, splitsen en samenvoegen, inventariseert effecten op navigatie, labels, formulieren, structuurboom, geïmporteerde features en handtekeningen, en weigert plannen die achterblijvende doelen zouden opleveren of ondertekende inhoud zouden wijzigen zonder expliciete autorisatie- Layout-generatie in twee stappen -
GenerateLayoutmeet en pagineert teruggeplokte tekst, lijnen, afbeeldingen, page XObjects, kop- en voetteksten voordat atomair native pagina-objecten worden uitgezonden, waarbij stabiele placeholders{page}en{pages}het gemeten pagina-aantal in stand houden- Schijfgebaseerde gepagineerde layout -
GeneratePagedLayoutschrijft commando's naar door de aanroeper gekozen seekable storage, herstelt elke pagina uit compacte, niet-aaneengesloten segmenten, begrenst vastgehouden pagina-arrays met een LRU-cache en voegt PDFium-pagina's sequentieel toe- Tabelayout over pagina's heen -
TPdfLayoutTablelost vaste, fractionele en inhoudsgrote kolommen één keer op, herhaalt aaneengesloten kopregels, splitst in aanmerking komende bodyrijen, houdt groepen met row-span intact en zendt bijschriften, celranden, links en één doorlopende semantische hiërarchie van Table / TR / TH / TD over pagina's heen uit- Gecachte layout-nodes - Layout-plannen worden gecacht op volledige identiteit van beperkingen, content, fonts, stijl, bron en meter, terwijl
TPdfLayoutCachedNodeherhaalde sjabonen lui opbouwt en elke plaatsing uit één herbruikbaar native Form XObject verzendt- Automatische Tagged PDF-layout -
GenerateTaggedLayoutzendt native MCID's, artifacts, een Document-structuurboom, ParentTree- en IDTree-mappings, koppen, lijsten, figuren met alternatieve tekst, tabelkoppen en Link-annotaties met OBJR-eigendom uit vanuit hetzelfde gemeten layout-plan; item-beperkingen houden blokken en koppen bij elkaar, dwingen minimumwaarden voor widow / orphan af en forceren fysieke pagina-einden- Bewerken van marked content -
PageObjectMarks,AddPageObjectMark,SetPageObjectMarkParam,RemovePageObjectMarkParamenRemovePageObjectMarkinspecteren en wijzigen BDC-propertylijsten via stabiele native marks- Bidi- en complexe-scripttekst -
AddShapedTextzet directionele runs, contextuele vormen, ligaturen, advances en offsets om in gepositioneerde CID Type 2-glyphs, terwijl gegenereerde ToUnicode-mappings enActualTextde logische Unicode-semantiek behouden- CID Type 2-fontauteurschap -
AddCidType2Textembedt door de aanroeper geleverde TrueType-data met expliciete CID-to-GID- en ToUnicode-mappings, veilige optionele subsetting, gecontroleerde fallback op het volledige font en integriteitscontroles bij extractie- Geünificeerd cache-bytebudget -
TPdf.CacheBudgetBytescoördineert geparseerde pagina-scènes, miniaturen, structuurdata, tekst-snapshots en pagina-object-snapshots via één meetbare globale LRU, terwijlTPdfTileCacheen de systeemfont-cache kunnen aansluiten bij een door de aanroeper gekozen governor- Host-provider voor systeemfonts -
ConfigureSystemFontProviderleidt native verzoeken voor ontbrekende fonts om via een toepassingsprovider met byte-validatie, begrensde LRU-caching, optionele gedeelde byte-governance, native fallback, tabel-extractie en levensduurstatistieken- Hergebruik van pagina's via Form XObject -
CreateXObjectFromPagemaakt een herbruikbareTPdfXObject-handle van elke pagina van een ander document;InsertFormObjectFromXObjectvoegt ÉÉN kopie van de ingewikkelde pagina in de huidige pagina in. Ideaal voor watermerken, sjabloon-overlays en workflows van het type "stempel één pagina op vele". Het bestemmingsobject op de pagina kan worden gepositioneerd, geschaald en geroteerd viaFPDFPageObj_SetMatrixen deTPdfMatrix-helpers- Paginabeheer - Voeg pagina's toe, verwijder ze en manipuleer afzonderlijke pagina's;
AddPage(0, ...)voegt de allereerste pagina in en activeert deze onmiddellijk- Paginavakken - Lees en schrijf MediaBox, CropBox, BleedBox, TrimBox en ArtBox op de huidige pagina
- Catalog-taal - Lees en schrijf de documenttaal die in de /Lang-entry van de catalog is opgeslagen
- Trailer-bestands-ID's - Lees de permanente en wijzigende trailer-/ID-entries als binaire bytes
- JavaScript-acties op documentniveau - Som JavaScript-actienamen en -scripts op uit de name-tree op documentniveau
- Tagged PDF-structuurboom - Inspecteer logische structuurelementen, toegankelijkheidstekst, taal, marked-content-ID's en hiërarchie voor tagged PDF-pagina's
- Viewer-voorkeuren - Lees
PrintCopies,PrintPageRanges,PrintScalingenPrintPaperHandlinguit de viewer-preference-dictionary van het document; opgeslagen PDF's krijgen standaard een Fit Height-openingsactie voor de eerste pagina
Tekstbewerkingen
- Tekstextractie - Extraheer tekst uit PDF-pagina's met precisie op karakterniveau via de eigenschappen
Text,TextInRectangle, indexedCharacter,CharacterRectangleenCharacterOrigin- Gestructureerd tekstmodel -
GetStructuredTextbouwt een begrensde hiërarchie van pagina's, blokken, regels en gestileerde spans op basis van native tekengeometrie, font-metadata, text-object-identiteit, Tagged PDF-semantiek en fallback-volgorde op fysieke layout- Tabeldetectie en -extractie -
ExtractTablesenExtractDocumentTablescombineren native word-boxes met getransformeerde pad-rasterlijnen om tabellen met randen of op witruimte uitgelijnde tabellen te detecteren, samengevoegde spans te behouden, vertrouwen te scoren, paginavervolgingen te markeren en CSV of JSON te leveren- Semantische reflow en responsieve HTML -
BuildReflowDocumentcombineert Tagged PDF-semantiek, inferentie op fysieke layout en tabelextractie in een begrensde, herbruikbare node-boom waarvan veilige HTML-uitvoer koppen, alinea's, lijsten, figuren, paginasecties en tabelspans behoudt- Doorzoekbare OCR-laag -
ApplyOcrSearchLayergeeft begrensde top-down BGRA-paginarenderingsresultaten door aan een toepassingsprovider, mapt confidence-quads door de native paginageometrie en voegt onzichtbare doorzoekbare tekst toe zonder scanafbeeldingen opnieuw te coderen- Leeseenheden per zin - TPdf.ReadingUnits, TPdf.DocumentReadingUnits, TPdfView.ReadingUnits en BuildReadingUnits leveren zin-grote TPdfReadingUnit-records voor gesynchroniseerd TTS-luisterlezen
- Visuele regelselectie -
TPdfView.SelectLineAtselecteert de visuele tekstregel die een one-based pagina- en zero-based karakterindex bevat, via hetzelfde regelgrenzen-model dat wordt gebruikt voor drievoudige-klik-selectie enShift+HomeofShift+End- Woord-voor-woord leesmarkering -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollowKoppelt een paginakarakterpositie aan de bijbehorende TPdfWordBox, markeert die en geeft de woordindex terug; Markeert een TPdfWordBox als huidig uitgesproken woord in TPdfView; Wist de huidige overlay voor de woord-voor-woord leescursor in TPdfView; Bepaalt de overlaykleur voor de huidige woord-voor-woord leescursor; Bepaalt of TPdfView het huidige uitgesproken woord in beeld schuift tijdens leestracking- Orkestratie van hardop-leessessies -
TPdfReadingSession,TPdfSpokenText,SpokenTextAppend,BuildSpokenTextFromWords,SpokenToPageCharenEstimateSpokenWordIndexcoördineren host-TTS-engines, uitgesproken chunks, woordpositie-callbacks, geschatte timing, pauze-/hervattingsafhandeling en TPdfView-woordcursor-updates- Tekst zoeken - Vind tekst met opties voor hoofdletter-/kleinletter-onderscheid, hele woorden en aaneengesloten zoeken via
FindFirst,FindNextenFindPrevious, of stream matches vooruit en achteruit door het complete document metTPdf.CreateDocumentSearch, resultaatrechthoeken in paginaruimte, coöperatieve annulering en constante page-handle-geheugenconsumptie- Overlay voor zoek-markering -
TPdfView.HighlightSearchTextvervangt de match-overlay van de huidige pagina, terwijlAddSearchTextHighlightunieke bereiken voor aanvullende termen toevoegt, zodat meerdere queries tegelijk zichtbaar kunnen blijven.ClearHighlightverwijdert de volledige set; bij navigatie naar een andere pagina wordt deze automatisch gewist omdat karakterbereiken paginaspecifiek zijn.HighlightColoris standaardclYellowen is published, zodat toepassingen de overlay kunnen themen- Karaktereigenschappen - Toegang tot lettergrootte, gewicht, hoek en positionering voor afzonderlijke karakters met de indexed eigenschappen
CharacterAngle,CharacterFontSize,CharacterFontWeight,CharacterGenerated,CharacterIsHyphenenCharacterMapError- Ondersteuning voor Europese tekens -
AddTextlaadt en cachet automatisch het bijbehorende TrueType-systeemlettertype voordat een tekstobject wordt aangemaakt. Hierdoor worden accenttekens in het Tsjechisch, Frans, Duits, Spaans, Portugees, Pools en Turks — die de ingebouwde standaard-fonts van PDFium niet kunnen weergeven — nu correct weergegeven zonder enige codewijziging- Tekst toevoegen - Voeg nieuwe tekst toe aan PDF-pagina's met aangepaste fonts, kleuren, transparantie en rotatie
- Positionering van tekstobjecten - Stel per-karakterposities in voor bestaande tekstobjecten via
SetTextPositionsenTPdfSingleArray- Font-informatie - Haal font-eigenschappen op zoals familienaam, embedding-status, italic-hoek, ascent / descent en ruwe font-data per pagina-object
Annotatie-ondersteuning
- Annotatietypen - Ondersteuning voor tekst-, link-, highlight-, onderstreping-, doorstreping- en vele andere annotatietypen
- Annotatie-creëring - Maak programmatisch nieuwe annotaties aan
- Annotatie-bewerking - Pas eigenschappen van bestaande annotaties aan, inclusief kleur, transparantie en inhoud
- Linkannotaties - Verwerk interne en externe links met ondersteuning voor acties
Formulier-ondersteuning
- Accessors voor formulierinvulling via spraak - FocusedFormFieldValue, FocusedFormFieldName en FocusedFormFieldDetails op TPdf en TPdfView geven waarde, naam en TPdfFormFieldInfo van het huidige logische formulierveld voor toetsenbord- of spraakgestuurde invoer
- Formuliertypen - Ondersteuning voor AcroForm- en XFA-formulieren
- Formulieren invullen - Interactief formulieren invullen met JavaScript-ondersteuning
- V8-DLL-selectie - Stel
EnableV8Enginein vóór het laden ompdfium.v8.dlluit de bijbehorende mapDLLs\Win32ofDLLs\Win64te gebruiken en vraag de beschikbaarheid van V8/XFA-helpers op viaV8FeaturesAvailable,XfaBStrHelpersAvailableenGetRecommendedV8Flags- Veldtoegang - Lees en schrijf waarden van formuliervelden op basis van index of positie
- Veldinformatie - Toegang tot veldtype, flags, naam en andere eigenschappen
- Veld-flags - Werk AcroForm-veld-flags bij op basis van index of positie via
SetFormFieldFlags/SetFormFieldFlagsAt, inclusief flags voor alleen-lezen, vereist, wachtwoord en multi-select- Formulieren afvlakken -
GenerateFormAppearancesregenereert de /AP appearance stream voor elk formulier-widget op elke pagina, enFlattenPage/FlattenAllPagesbakken annotaties en formuliervelden in als statische pagina-inhoud (niet meer bewerkbaar)- Tekstselectie, klembord en ongedaan maken / opnieuw uitvoeren voor formulier-widgets - Op het gefocuste AcroForm-widget biedt de viewer
GetSelectedFormText,CopySelectedFormTextToClipboard,CutSelectedFormTextToClipboard,PasteFormTextFromClipboard,SelectAllFormTextenFormUndo/FormRedo/FormCanUndo/FormCanRedo. De editor verwerktCtrl+A,Ctrl+C,Ctrl+Insert,Ctrl+X,Shift+Delete,Ctrl+VenShift+Insert; knippen en plakken wijzigen alleen-lezen velden of sessies zonder formulier-invul- of wijzigingsrechten af- Bewerkingstransacties op documentniveau en ongedaan maken / opnieuw uitvoeren -
BeginEditTransaction,CommitEditTransactionenRollbackEditTransactiongroeperen willekeurige bewerkingen op pagina's, objecten, annotaties, bijlagen en metadata, terwijlUndoEdit,RedoEditen portable edit-journals gebruik maken van begrensde, met SHA-256 geverifieerde bidirectionele delta's- Herstel na crashes en commit-gedreven autosave - voorzien van controlesommen herstelpakketten binden bron- en herstel-vingerafdrukken aan een begrensd edit-journal, terwijl atomaire autosave na commit, undo of redo een expliciet sidecar-bestand verversen zonder de bron-PDF te herschrijven
Afbeeldingsbewerkingen
- Afbeeldingen extraheren - Extraheer bitmaps uit PDF-pagina's met de indexed eigenschap
Bitmap; itereer overBitmapCountom elke afbeelding op schijf op te slaan- JPEG-invoeging -
AddJpegImageneemt een TStream met ruwe JPEG-bytes in en embedt de afbeelding als een /DCTDecode XObject zonder opnieuw te coderen- Picture-ondersteuning -
AddPictureaccepteert eenTPicture-object met automatische formaatconversie via de geregistreerde grafische klassen van VCL/LCL- Directe invoeging van afbeeldingen -
AddImage(FileName)herkent elk formaat dat is geregistreerd bij de VCL- of LCL-grafische units (BMP, PNG via PngImage, JPG, ...) en deelt de AddPicture-pijplijn.AddImage(TBitmap)slaat de tussenstap via TPicture over, wat aanroepers vereenvoudigt die al een TBitmap hebben uit rendering- of batch-generatiewerk- ICC-profiel van afbeeldingen - Image-pagina-objecten geven hun ingebedde ICC-profielgegevens prijs wanneer aanwezig (binding voor
FPDFImageObj_GetIccProfileDataDecoded)- Miniatuur-generatie - Genereer miniatuur-bitmaps van pagina's via de eigenschap
Thumbnailof render elke één-gebaseerde pagina viaTPdf.RenderPageThumbnailzonderPageNumberte wijzigen, met een revisiebewuste LRU begrensd door plafonds voor het aantal entries en pixelbytes- Gecachte pagina-scènes -
TPdf.RenderPageByIndex,RenderPageThumbnailenExtractThumbnailhergebruiken begrensde, LRU-gecachte PDFium-pagina-scènes, terwijl paginabewerkingen, wijzigingen in de paginaboom, formulierstatus en het afbreken van het document verouderde entries ongeldig maken
Helper-units
- Async-infrastructuur -
FPdfAsynccombineert gestructureerde coöperatieve annulering met verwijderbare callbacks en deadline-bronnen, configureerbare resultaatdispatch viaTPdfFuture<T>en een herbruikbareTPdfAsyncExecutormet vaste workers, vier FIFO-prioriteitsbanen, backpressure op begrensde wachtrijen, per-task handles, timingdiagnostiek, aggregaatstatistieken en graceful shutdown- Stream-adapter -
TPdfStreamAdapteroverbrugt een Pascal-TStreamnaar deFPDF_FILEACCESS-callbacks van PDFium, zodatLoadCustomDocumentblokken op aanvraag leest in plaats van de volledige PDF in het geheugen te bufferen- Progressieve downloadsessies -
TPdfProgressiveDocumenthoudt de native beschikbaarheidsprovider van PDFium in leven, voedt document-, formulier- en pagina-hints naarTPdfRangeRequestScheduler, voegt ontbrekende bereiken samen, preempte achtergrondstransfers voor paginakritieke bytes, begrenst verzoekgroottes en retries, annuleert overtollige transports en opent een gelineariseerde pagina voordat de volledige PDF is binnengekomen- Begrensde streaminspectie -
TPdfStreamInspectorinventariseert fysieke stream-objecten, stelt veilige ruwe vensters en geordende decoding via generieke filters beschikbaar, rapporteert native toegangspaden voor afbeeldingen en bijlagen en dwingt budgetten af voor bron, uitvoer, dictionary, aantal en expansieratio- Normalisatie van content-streams -
TPdf.SaveAsNormalizedContenttokeniseert logische paginainhoud, verwijdert commentaar, valideert de balans van states en containers, behoudt niet-ondersteunde operators en inline-image-data en voegt veilige/Contents-arrays samen- Fast Web View-uitvoer -
TPdf.SaveAsLinearizedschrijft first-page-objecten vóór latere pagina's, zendt twee cross-reference secties uit en bouwt hint tables voor page offsets en gedeelde objecten, zodat een HTTP Range-client een gevraagde pagina kan openen zonder het volledige bestand te downloaden- Object Stream-uitvoer -
TPdf.SaveAsObjectStreampakt in aanmerking komende waarden in begrensde ObjStm-groepen voor PDF 1.5+, houdt openingskritieke objecten direct en schrijft adaptieve type-2 xref-entries voor kleinere bestanden zonder random access op te offeren- Incrementeel opslaan van gewijzigde objecten -
TPdf.BeginIncrementalSaveenCommitIncrementalSavevergelijken stabiele semantische snapshots, behouden elke eerdere byte, versleuteld of niet, erven R5-, R6- of R7-securityparameters over, voegen alleen gewijzigde objecten toe, openen elk resultaat strikt opnieuw en gebruiken voor bestandscommits een duurzaam sidecar-bestand plus atomaire vervanging- Optional Content-besturing -
TPdf.InspectOptionalContentinventariseert lagen, configuraties, usage-metadata, radiogroepen, volgorde, vergrendelingen, OCMD-beleid en zichtbaarheidsexpressies, terwijlSaveAsOptionalContentConfigureddeterministische laagstatussen schrijft die PDFium toepast via zijn native renderingcontext- Begrensde werkopslag -
TPdfRandomAccessStorehoudt kleine data in het geheugen, schuift eenmalig uit naar een privé-tijdelijk bestand dat bij sluiten wordt verwijderd bij een door de aanroeper gekozen plafond, en levert positioned reads zonder de gedeelde cursor te wijzigen;TPdf.SaveMemoryLimitpast hetzelfde beleid toe op de nabewerking van de kernopslag, terwijl standaardupdates van de open-action- en page-label-catalogus vaste venstergroottes en een sparse, lui gevulde objectindex gebruiken- Native versie-opvraging -
TPdf.PdfVersionhergebruikt de parserstatus vanFPDF_GetFileVersionvoor header- en catalogus-semantiek, met één acht-byte headercontrole om misvormde catalogus-downgrades af te wijzen- Matrix-geometrietoolkit -
FPdfMatrixwikkelt deFS_MATRIXvan PDFium in met post- en pre-compositie, pivot-bewuste transformaties, stretch / contain / cover-rechthoekfittings, schaalbewuste invertibiliteitsdiagnostiek, decompositie, niet-muterende inverse helpers, vector- en vierhoekmapping, punt- of rechthoekbatches in één allocatie, in-place varianten en getransformeerde grenzen in één keer- Annuleerbare progressieve rendering -
TPdf.RenderPageProgressivedrijft de lusFPDF_RenderPageBitmap_Start+RenderPage_Continuevan PDFium aan en peilt tussen iteraties eenIPdfCancellationTokenvia deIFSDK_PAUSE-callback, zodat lange high-DPI-renders halverwege de pagina kunnen worden afgebroken in plaats van te blokkeren tot ze klaar zijn. Retourneert eenTPdfProgressiveStatusvanprsDone,prsCancelledofprsFailed- Zero-copy renderpad -
RenderPage/RenderTile/RenderPageProgressiveschrijven de PDFium-uitvoer rechtstreeks in de DIB-buffer van de bestemmings-TBitmapin plaats van te stagen via een interne buffer. Hiermee wordt één geheugenkopie van width × height × 4 bytes per render bespaard — het meest merkbaar bij hoge DPI (miniatuurpanelen, export in printkwaliteit, batchexport). Een fallback-pad per scanline blijft behouden wanneer de bestemmings-DIB niet veilig kan worden gewikkeld- Bitmapkleurtransformaties voor low vision - InvertPdfBitmap, GrayscalePdfBitmap en DuotonePdfBitmap transformeren gerenderde 32-bits TBitmap-pixels ter plekke voor geïnverteerde, grijze of tweekleurige low-vision weergaven
- Live low-vision-weergave -
TPdfView.OptionsondersteuntreInvertenreNightDuotone, metNightDuotoneInkenNightDuotonePapervoor de live nachtkleuren voordat overlays worden getekend
Tekenbewerkingen
- Paden tekenen - Maak paden met lijnen, Bézier-curven en gesloten vormen
- Objecten verwijderen - Verwijder pagina-objecten en regenereer pagina-inhoud vanuit TPdf of TPdfView
- Fill en stroke - Configureer fill-modus, kleuren, transparantie en stroke-eigenschappen
- Blend-modi - Ondersteuning voor diverse PDF-blend-modi
- Lijnstijlen - Configureer line cap, line join en stroke-breedte
Digitale handtekeningen
- Handtekening-detectie - Detecteer en som digitale handtekeningen in PDF-documenten op
- Handtekening-informatie - Toegang tot inhoud, byte range, sub-filter, reden en tijd van een handtekening
- MDP-rechten - Vraag rechten op voor detectie en preventie van documentwijzigingen
- Revisie-analyse na ondertekening -
AnalyzeSignatureRevisionsclassificeert incrementele wijzigingen ten opzichte van de originele bytes tegenover DocMDP en FieldMDP, identificeert updates van validatiemateriaal en rapporteert schaduwwaarden of onopgeloste gecomprimeerde objecten zonder het document opnieuw op te slaan- Elliptische-krommeprofielen uit PDF 2.0 - PAdES-validatie herkent NIST-, Brainpool-, Ed25519- en Ed448-handtekeningen, controleert curve-naar-digest-congruentie en AlgorithmIdentifier-parameters en rapporteert niet-ondersteunde native cryptografie los van ongeldige combinaties
Ondersteuning voor bijlagen
- Toegang tot bijlagen - Lees, maak, wijzig en verwijder ingebedde bestandsbijlagen
- Begrensde batch-extractie -
ReadAttachmentMetadatainventariseert bijlagen één keer enExtractAttachmentsToStreamsschrijft telkens één gedecodeerde payload onder besturing per bestand, aggregaat, chunk en annulering- Namen van bijlagen - Toegang tot bestandsnamen van bijlagen
- Bijlage-typen - Lees MIME-subtype-waarden van ingebedde bestanden wanneer aanwezig
- Bladwijzers - Navigeer door documentbladwijzers met hiërarchische ondersteuning via de array
Bookmarks,BookmarkChildren,HasBookmarkChildrenen de traversal-helperBookmarkFrom- Benoemde bestemmingen - Toegang tot benoemde bestemmingen op basis van index of naam via
Destination,DestinationByNameenDestinationCount- Pagina-labels - Haal pagina-labels op voor elke pagina via
PageLabel; nuttig wanneer documenten Romeinse cijfers gebruiken voor inleidende delen- Weblinks - Detecteer en navigeer naar weblinks op pagina's met
WebLink,WebLinkCountenTPdfView.WebLinkAtPos- Linkannotaties - Toegang tot linkannotaties met actie- en bestemmingsinformatie via
LinkAnnotation,LinkAnnotationCountenTPdfView.LinkAnnotationAtPos- Veilige afhandeling van link-clicks - TPdfView triggert de events
OnAnnotationLinkClick/OnWebLinkClickvóór de automatische goto / URI-afhandeling, terwijl launch-acties standaard zijn uitgeschakeld. Linkclick-detectie loopt alleen wanneer het gebaar een klik is in plaats van een sleep, met behulp van een vers MouseDown-anker, zodat panning-gebaren nog steeds via het bestaande scrollpad lopen
Rendering
- Hoogwaardige rendering - Render pagina's naar device context, bitmap of tile via
RenderPage/RenderTile, met zero-copy directe writes in de DIB-buffer van de bestemming- Annuleerbare progressieve rendering -
RenderPageProgressivedrijft de progressieve lus van PDFium aan en peilt tussen iteraties eenIPdfCancellationToken, en retourneertprsDone,prsCancelledofprsFailed. De bitmap bevat het tot dusverre voltooide gedeeltelijke werk bij annulering- Parallelle paginarendering -
RenderPagesParallellegt het huidige document één keer vast, geeft elke worker een onafhankelijk geladen PDFium-module en -document, behoudt de verzoekvolgorde en begrenst zowel het per pagina als het aggregaat vastgehouden uitvoergeheugen- Veilige content-redactie -
SaveAsRedactedpast/Redact-rechthoeken toe op een geïsoleerde snapshot, verwijdert conservatief kruisende top-level pagina-objecten en overlappende annotaties, schildert dekkende vervangingen, verwijdert ingebedde bijlagen en schrijft een gezuiverd resultaat met één revisie zonder het geladen document te wijzigen- Render-opties - LCD-tekstoptimalisatie (
reLcd), annotaties (reAnnotations), grijswaarden en print-modus-flags- Skia-hooks - Low-level bindings
FPDF_RenderPageSkiaenFPDF_FFLDrawSkiazijn beschikbaar wanneer aanroepers een externe SkCanvas leveren (afhankelijk van de meegeleverde DLL-exports)- Selectie van afdrukmodus - Stel via
SetPdfPrintModemetTPdfPrintModein: EMF, alleen-tekst, PostScript, pass-through, image-mask en Type 42 PDFium-printmodi- Async-overlay - TPdfView kan een opt-in laad-overlay tonen terwijl door de toepassing beïnvloede workers renderen met aparte TPdf-instances
- Pagina-rotatie - Ondersteuning voor rotatie van 0, 90, 180 en 270 graden (
ro0,ro90,ro180,ro270)- Transparantie-detectie - De eigenschap
Transparentmeldt of een object op de huidige pagina transparantie heeft, inclusief blend-modi en gedeeltelijke alpha
Weergeven (TPdfView)
- Weergavemodi -
dmSingleContinuous,dmTwoPageContinuousendmTwoPageContinuousWithCover(de omslagpagina staat op zichzelf, gevolgd door twee-pagina-spreads). De unit-level helperComputeSpreadPagesstelt de spread-pagina-berekening beschikbaar zonder een viewer te instantiëren- Fit-modus -
FitModebepaalt hoe de pagina in de viewport past:pfmNone(handmatig zoomen),pfmActualSize(100%),pfmFitPage(hele pagina past in de viewport),pfmFitWidth(paginabreedte komt overeen met viewport-breedte) enpfmFitHeight(paginahoogte komt overeen met viewport-hoogte). De actieve fit-modus wordt automatisch opnieuw toegepast bij Resize en bij wijziging van de huidige pagina; het direct instellen van Zoom annuleert de actieve fit-modus (FitMode keert terug naarpfmNone), conform de standaard PDF-viewer-conventie- Zoom-bediening - Variabele zoom met de per-pagina helpers
PageZoom,PageWidthZoom,PageHeightZoomenActualSizeZoom- Paginakleur -
PageColorontkoppelt de gerenderde PDF-pagina-achtergrond van deColorvan de omringende control. De standaardwaarde isclWhite, zodat PDF-pagina's nu papierwit worden gerenderd ongeacht het thema van de host-toepassing. Donkere-thema viewers kunnen het scrollgebied donker houden terwijl de feitelijke PDF-pagina wit blijft (of een willekeurige kleur die de toepassing kiest)- Interactieve tekstselectie - Eindgebruiker-tekstselectie door slepen op PDF-pagina's, met hit-test die automatisch wisselt tussen selectie en pannen: klikken op een karakter start een selectiesleep, klikken op witruimte zorgt voor pannen. Dubbelklik selecteert het woord, drievoudige klik selecteert de regel,
Ctrl+Aselecteert de pagina (beide pagina's in spread-modus),Ctrl+Ckopieert alsCF_UNICODETEXT,Shift+pijltjesbreidt de selectie uit, hoveren over tekst verandert de cursor incrIBeamen slepen tot de rand van de viewer scrollt de pagina automatisch. Nieuwe publishedSelectionColorenOnSelectionChange; nieuwe publicHasSelection,SelectedText,SelectionCharCount,ClearSelection,SelectAllenCopySelectionToClipboard. Spread-weergavemodi selecteren over beide zichtbare pagina's met CR/LF-aaneenschakeling. Een standaard rechtsklik-Copy-popup wordt automatisch gekoppeld wanneer de host geen eigenPopupMenuheeft toegewezen. Gated door de v1.17.0-flagAllowUserTextSelectionvoor kiosk-hosts- Coördinaten-mapping - Converteer tussen viewer-device-coördinaten en PDF-pagina-coördinaten met
DeviceToPage/PageToDevice, inclusief overloads die eenTRectnemen en eenTPdfRectangleretourneren- Tekstselectie en hit-testing - Bepaal karakters onder viewer-punten met
CharacterIndexAtPosen schilder tekstselectie-markeringen viaPaintSelection- Muis en toetsenbord - Volledige ondersteuning voor invoerapparaten met muis-drag-scrolling, sneltoetsen PgUp / PgDn / Ctrl+Home / Ctrl+End en paginanavigatie via wheel-up / wheel-down. Ctrl+wheel is gereserveerd voor zoom in de toepassing en wordt overgeslagen door de navigatie-handler
- Vergrendeling van gebruikersinvoer -
AllowUserPageChangebestuurt toetsenbord-pagina-sneltoetsen,ChangePageOnMouseScrollingbestuurt wiel-pagina-sprongen enAllowUserTextSelectionbestuurt muis-/toetsenbord-tekstselectie-invoer. Alle drie staan standaard op True; zet ze op False om kiosken, preview-panes of alleen-lezen embeds te vergrendelen zonder subclassing- Async render-overlay -
AsyncRendering,LoadingTextenLoadingColortekenen een kleine "Loading..."-indicator over de gerenderde pagina, zodat toepassingen die hun eigen worker gebruiken voor lange renders een consistente visuele uitstraling delen. Standaardwaarden behouden bestaand gedrag.TPdfserialiseert nu render- en pagina-unload-aanroepen per instance; toepassingen blijven verantwoordelijk voor worker-dispatch en moeten vermijden een document te muteren terwijl een render onderweg is- Veilige afhandeling van link-clicks -
LinkOptionsis een published set die het automatische gedrag bestuurt voor de vier PDF-link-actietypen:loAutoGoto(paginasprong),loAutoOpenURI(ShellExecute),loAutoLaunch(ShellExecute) enloAutoEmbeddedGoto(gereserveerd). Standaardwaarden activeren alleenloAutoGotoenloAutoOpenURI;loAutoLaunchenloAutoEmbeddedGotoblijven uitgeschakeld, zodat een per ongeluk klik geen willekeurig programma kan uitvoeren.OnAnnotationLinkClickenOnWebLinkClickvuren vóór elke automatische actie en laten de toepassing het event als Handled markeren of omleiden- Formulier-interactie - Interactieve formulierbewerking binnen de viewer, plus de v1.23.0-helpers voor selectie / ongedaan maken / opnieuw uitvoeren
- Visuele styling -
PageShadowSize,PageShadowColorenPageBorderColorschilderen een optionele slagschaduw onder de paginarechthoek en een rand van één pixel eromheen;SmoothScrollanimeert nu line/page-scrollbar-commando's in timer-gedreven segmenten terwijl thumb-tracking onmiddellijk blijft- Miniatuur-navigatie -
TPdfThumbnailView(unitFPdfThumbnail) rendert één paginaminiatuur per rij in een scrollbaar zijpaneel met hover- en selectie-markering plus click-to-go-navigatie. Ontworpen om naast een TPdfView te plaatsen. Eigenschappen:CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColor; event:OnPageClick
Compressie
- Automatische compressie - Wanneer de eigenschap
CompressedTrue is (standaard), worden bij het opslaan alle PDF-streams gegarandeerd FlateDecode-gecomprimeerd- Nabewerking - De compressie-engine scant de opgeslagen PDF-data en comprimeert eventuele ongecomprimeerde streams met zlib maximale compressie
- Cross-reference rebuild - Herbouwt automatisch de xref-tabel wanneer stream-compressie byte-offsets verandert
- Geen overhead - Indien alle streams al zijn gecomprimeerd, gaat de data ongewijzigd door
Beveiliging
- Wachtwoord-ondersteuning - Open met wachtwoord beveiligde PDF-documenten
- Rechten - Lees document- en gebruikersrechten; de demo
SecurityAuditcombineert rechten, bijlagen, document-JavaScript, URI- / Launch-links, handtekeningen, XFA en V8-beschikbaarheid in een alleen-lezen risico-oppervlak met opties om TXT-/JSON-rapporten op te slaan en TXT te kopiëren- Begrensde DER-toolkit -
FPdfAsn1codeert lage en hoge tagnummers, getypeerde waarden, gesorteerde SET OF-collecties en canonieke tijd- of stringvormen; de zero-copy leesvensters, getypeerde decoders en de bronbeperkte validator ondersteunen CMS-, PAdES-, certificaat- en timestamp-workflows- Handtekeningspecifieke langetermijnvalidatie -
TPadesDssOptions.Vrisschrijft hash-gekeyde indirecte VRI-dictionaries, terwijl gedeelde certificaat-, OCSP- en CRL-streams op content-hash worden gedupliceerd en PAdES B-LT- of B-LTA-ondertekening de VRI van de nieuwe handtekening automatisch aanmaakt- Remote en onderbroken ondertekening -
PreparePadesRemoteSignaturebewaart de SHA-256-documentdigest, de exacte ByteRange, placeholder-coördinaten en de vingerafdruk van de voorbereide PDF voor HSM- of cloudondertekening, terwijlCompletePadesRemoteSignaturegewijzigde, hergebruikte, te grote of digest-afwijkende sessies afwijst voordat uitvoer wordt geschreven- Analyse van handtekeningsrevisiebeleid -
AnalyzeSignatureRevisionsreconstrueert klassieke, hybride en xref-stream-revisieketens, past DocMDP en FieldMDP per handtekening toe en faalt gesloten bij misvormde, schaduw-, gecomprimeerde of boven-budget wijzigingen- Ambiguïteitsbestendige handtekeningprofielen - PAdES-validatie telt vereiste sleutels alleen op het bovenste niveau van de signature dictionary, wijst duplicaten en inconsistente Sig- of DocTimeStamp-profielen af en eist dat ByteRange exact het directe hexadecimale Contents-token uitsluit
- Export van bewijsmateriaal bij meerdere handtekeningen -
BuildPadesEvidenceReportbrengt PDFium-feiten, CMS-beleid, vertrouwens- en timestampstatus, certificaatpad-hashes, DSS/VRI-dekking en revisiebeslissingen met elkaar in verband, met begrensde JSON- en CSV-uitvoer- Vernieuwing van archieftijdstempels -
RenewPadesArchiveTimestampvoegt een RFC 3161 Document Time-stamp toe over de exacte bestaande handtekeningsgeschiedenis, ververst optioneel eerst de volledige DSS en valideert de resulterende B-LTA-keten voordat uitvoer wordt geleverd- Asynchrone vertrouwensvalidatie -
ValidatePadesTrustenValidatePadesTrustAsyncverifiëren gedetacheerde handtekeningen op originele bytes, signer- en TSA-ketens, optioneel online intrekkingsbewijs en RFC 3161-timestamptokens, met gefaseerde voortgang, begrensde retenties en coöperatieve annulering- Gekwalificeerd vertrouwen -
TPdfEuropeanTrustedListparseert alleen door de aanroeper geauthentiseerde ETSI trusted lists, authentiseert gecachte XML opnieuw, accepteert updatebronnen onder beheer van de aanroeper en biedt offline evaluatie van gekwalificeerde diensten viaQualifiedTrustEvaluator- Beveiliging verwijderen - Sla documenten op met beveiliging verwijderd (indien geautoriseerd)
Afdrukken
- Print-modi - Kies tussen EMF, alleen-tekst, PostScript Level 2 / 3, PostScript pass-through, EMF image-mask en Type 42 print-modi via de globale functie
SetPdfPrintMode- Viewer-voorkeuren - Stel de intentie van de documentauteur ter beschikking via
PrintCopies,PrintPageRanges(one-based paginabereiken),PrintScalingenPrintPaperHandling;SetPdfPrintPaperHandlingDevModevertaalt de duplex-hint naar WindowsDEVMODE.dmDuplex- N-up afdrukken - De Delphi-, C++Builder- en Lazarus-demos
PrintPreferencestonen N-up sheet-compositie (1 / 2 / 4 / 9 pagina's per blad) met filtering van oneven / even pagina's, grijswaarden-rendering, optionele celranden van 1 pixel, PDF-auteur-printvoorkeuren en mapping van duplex-intentie viaSetPdfPrintPaperHandlingDevMode
Meegeleverde demo's
De mappen
Demo\Delphi,Demo\CBuilderenDemo\Lazarusbevatten uitvoerbare voorbeeldprojecten die de live API-oppervlakte oefenen over alle drie IDE-families. Hoogtepunten:
- PDFViewer / MultiPageViewer / SplitView - End-to-end TPdfView-gebruik: laden, navigeren, zoomen, roteren, twee-pagina-spread, omslag-bewuste lay-outs en Delphi-/ C++Builder-/ Lazarus-PDF-vergelijking naast elkaar met gesynchroniseerde commando's; de viewer-demo's zijn ook praktische snelheidstesten voor PDF's van meerdere gigabytes, waarbij documenten van 2,x GB bijna onmiddellijk een bruikbare eerste weergave kunnen bereiken terwijl pagina-rendering responsief blijft
- ViewerInteractionLab - Delphi-, C++Builder- en Lazarus-voorbeelden gericht op TPdfView-interactie voor weergavemodi, fit-modi, paginakleuren, rotatie, zoek-markering, tekstselectie, voorbeeld van geselecteerde tekst, klembordacties en DeviceToPage-coördinaten-feedback
- SearchAndSelect - Delphi-, Lazarus- en C++Builder-voorbeelden voor zoekresultaten over alle pagina's, navigatie naar vorige / volgende match, springen naar resultaten via dubbelklik,
HighlightSearchText, hoofdletter-/heel-woord-zoeken,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelectionen spread-weergavemodi- PreflightReport - Herbruikbare
FPdfPreflightReport-objecten verzamelen PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- en PDF/VT-resultaten met status, ernst Info / Warning / Error, opzoeken, zoeken, filteren, deterministische aggregatie, stabiele SHA-256-vingerafdrukken en uitvoer in TXT / HTML / Markdown / JSON / CSV, plus automatiseringsformaten SARIF 2.1.0 / JUnit XML / NDJSON / XML; demos voor Delphi, Lazarus en C++Builder en consoleworkflows bieden voorvertoningen, batchrouting, samenvattingen, rapportbijlagen en exitcode-gating voor CI- ContentExtractionLab - Delphi-, Lazarus- en C++Builder-werkproces voor uniforme inhoudsinventarisatie, met documentmetadata, paginatekst, pagina-objecten, afbeeldingen, bijlagen, links, annotaties, bladwijzers en font-/karaktermetrics, met TXT-/JSON-export, alle / geen categorie-selectie, bron-PDF-opslag en rapport-kopie-acties
- WatermarkStamp - Delphi-, Lazarus- en C++Builder-herbruikbare Form XObject-workflow voor gecentreerde watermerken, hoekstempels en paginanummerlabels over een doel-PDF met meerdere pagina's
- CreatePDF - Bouw een PDF met meerdere pagina's vanaf nul met tekst, afbeeldingen, paden, tabellen en watermerkcompositie; bevat een 'European Text'-optie om Tsjechische / Franse / Duitse / Spaanse / Portugese / Poolse / Turkse tekst met accenten te schrijven voor het verifiëren van font-selectie en Unicode-afhandeling
- ExtractText / ExtractImages / ContentExtractionLab - Sla geëxtraheerde tekst (inclusief uitvoer gescheiden per pagina) of ingebedde afbeeldingen op schijf op; of genereer in één keer een inventarisatierapport met meerdere categorieën
- FormFill - Lees AcroForm-veld-metadata, schrijf waarden, regenereer /AP-appearances en sla het bewerkbare of het afgevlakte resultaat op
- FontProperties - Inspecteer indexed karakter-/font-metadata via zowel TPdf als TPdfView in Delphi, C++Builder en Lazarus
- MergePDF / SplitPDF - Combineer meerdere bron-PDF's (met paginabereik-selectie per bestand, optioneel uitvoerpad, uitvoeringslog, annuleerknop en samenvoeg-voltooiingssamenvatting) of splits één PDF in uitvoerbestanden per pagina
- PDFtoJpg / BatchExport - Delphi-, C++Builder- en Lazarus-one-shot of batch-PDF-naar-JPG-conversie met overall-progress per bestand, current-progress per pagina, invoer voor DPI / kwaliteit / wachtwoord en een coöperatief annuleerbare batch ondersteund door
IPdfCancellationToken- StandardsLab - Delphi-, C++Builder- en Lazarus-workflow-voorbeelden voor PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- en PDF/VT-validatie, problemenrapportage en standaards-georiënteerde save-uitvoer
- PrintPDF / PrintPreferences - Delphi-, C++Builder- en Lazarus-standaard PDF-afdrukken met preview, paginabereiken, kopieën, sorteren, voortgang en annulering (PrintPDF), plus Delphi-, C++Builder- en Lazarus-N-up sheet-compositie met oneven/even-filtering en PDF-auteur-printvoorkeuren (PrintPreferences)
- SecurityAudit - Delphi-, C++Builder- en Lazarus-alleen-lezen risico-oppervlak-voorbeelden voor rechten, bijlagen, JavaScript-acties, URI-/Launch-links, weblinks, handtekeningen, XFA-status, beschikbaarheid van V8-/XFA-helpers en TXT-/JSON-auditrapporten
- Attachment - Maak PDF's, voeg ingebedde bestandsbijlagen toe / vermeld ze / extraheer ze / verwijder ze / sla ze op met weergave van MIME-subtype
- ImageToPDF - Delphi-, C++Builder- en Lazarus-batchconversie van afbeeldingen naar één PDF, één afbeelding per pagina, met preview en per-image progress
De regressiesuites voor Delphi, C++Builder en Lazarus dekken 147 (Pas) / 123 (C++) cases die dezelfde fixture-PDF's delen, zodat het gedrag byte-uitgelijnd blijft over alle drie IDE-families
Platform-ondersteuning
- Delphi - Delphi XE5 (RAD Studio XE5) tot en met Delphi 13.1 Florence (RAD Studio 13.1)
- C++Builder - C++Builder XE5 (RAD Studio XE5) tot en met C++Builder 13.1 Florence
- Lazarus - Free Pascal / Lazarus-ondersteuning
- Win32 / Win64 - Zowel 32-bit- als 64-bit-Windows-platforms
Uitgelijnde vergelijking identificeert ingevoegde, verwijderde en verplaatste pagina's met begrensde Unicode-tekstwijzigingen en meerdere visuele regio's; overlays maken die wijzigingen exporteerbaar
Transactionele navigatiemerge behoudt de bladwijzerhiërarchie, stijlen, URI-acties en gehermapte paginabestemmingen door geselecteerde en geherordende pagina-imports heen
Optionele Tesseract-OCR voegt doorzoekbare tekst toe aan gescande pagina's met expliciete dependency-diagnostiek, annulering en resourcebudgetten
Transactionele merge van geselecteerde AcroForm-pagina's ondersteunt expliciet naambeleid en resource-isolatie; de optionele barcodeprovider genereert Code128, QR, DataMatrix en PDF417 en herkent grijstintafbeeldingen