Composants principaux
- TPdf - Composant principal de gestion de documents PDF pour l'ouverture, la navigation, l'extraction de texte et la modification des documents PDF
- TPdfView - Composant visuel pour afficher et interagir avec les pages PDF
- TPdfReadingSession - Composant d'orchestration de lecture à voix haute pour les moteurs TTS hôtes et le suivi des mots de TPdfView
- TPdfThumbnailView - Panneau latéral défilant de miniatures pour la navigation entre pages
Opérations sur les documents
- Chargement de documents - Charger des fichiers PDF depuis le disque, des flux mémoire, des tableaux d'octets ou des adaptateurs TStream à la demande via
LoadCustomDocument. PDFium lit les blocs à la demande de sorte que les documents de plusieurs Go et les sources distantes / adossées à une base de données ne nécessitent pas une copie en mémoire préalable.- Protection par mot de passe - Ouvrir des documents PDF protégés par mot de passe et signaler les
UserPermissionseffectifs de la session authentifiée- Création de documents - Construire de nouveaux documents PDF de zéro avec
CreateDocument,AddPage,AddText,AddImage,AddPicture,AddJpegImageetCreatePath- Enregistrement de documents - Sauvegarder les documents modifiés avec diverses options (incrémentiel, suppression de la sécurité) et cibles explicites de version PDF, de PDF 1.0 à PDF 1.7
- Sortie PDF/A-1b -
SaveAsPdfA/SaveAsPdfAToStreampost-traitent l'enregistrement de base avec une mise à jour incrémentielle qui injecte un flux de métadonnées XMP, un OutputIntent ICC sRGB et un catalogue de document mis à jour, de sorte que le résultat soit conforme PDF/A-1b. Les profils ICC personnalisés sont pris en charge viaTPdfASaveOptions.IccProfileData.- Validation PDF/A -
ValidatePdfAet la propriété en lecture seulePdfAConformanceanalysent un document ouvert pour les marqueurs XMPpdfaid, OutputIntent avec ICC intégré, présence de chiffrement, et signalent le niveau de conformité (pac1a,pac1b,pac2b,pac3b,pacNoneoupacUnknown) ainsi qu'une liste d'entréesTPdfAValidationIssuedécrivant chaque problème détecté- Validateur de conformité de version PDF - Lorsque SaveAs cible PDF 1.0 à PDF 1.7, le writer rejette toute entrée de dictionnaire, filtre, sous-type d'annotation, type d'action, police, espace colorimétrique ou paramètre de chiffrement introduit après la version cible (par exemple JBIG2Decode, MarkInfo, OutputIntents, AES / AES-256, annotations Polygon / Caret / Watermark / Redact, actions JavaScript / Trans / SetState)
- Compression de flux - La compression FlateDecode automatique garantit que tous les flux PDF sont compressés de manière optimale lors de l'enregistrement ; définissez
Compressed := Falsepour désactiver dans les pipelines de débogage- Fusion de documents - Importer des pages depuis d'autres documents PDF
- Import de sous-ensembles de pages -
ImportPagesByIndexcopie un tableau d'index explicite base zéro depuis un document source, avec InsertAt = 0 pour insérer avant la page 1 ou InsertAt = PageCount pour ajouter à la fin. Passez un tableau d'index vide pour importer toutes les pages source.- Composition N-up -
ImportNPagesToOnerenvoie un nouveauTPdfdont les pages sont des composites NumX×NumY des pages du document source, dimensionnés en unités utilisateur PDF (1 unité = 1/72 in)- Réordonnancement de pages -
MovePagesréorganise les pages sur place en utilisant un tableau d'index base zéro et un index de destination pour la première page déplacée- Réutilisation de page Form XObject -
CreateXObjectFromPagefabrique un handleTPdfXObjectréutilisable à partir de n'importe quelle page d'un autre document ;InsertFormObjectFromXObjectinsère UNE copie de la page encapsulée dans la page courante. Idéal pour les filigranes, superpositions de modèles et workflows « tamponner une page sur plusieurs ». L'objet de page de destination peut être positionné, mis à l'échelle et tourné viaFPDFPageObj_SetMatrixet les helpersTPdfMatrix.- Gestion des pages - Ajouter, supprimer et manipuler des pages individuelles ;
AddPage(0, ...)insère la toute première page et l'active immédiatement- Boîtes de page - Lire et écrire MediaBox, CropBox, BleedBox, TrimBox et ArtBox sur la page courante
- Langue du catalogue - Lire et écrire la langue du document stockée dans l'entrée /Lang du catalogue
- ID de fichier du trailer - Lire les entrées permanentes et variables /ID du trailer sous forme d'octets binaires
- Actions JavaScript du document - Énumérer les noms et scripts des actions JavaScript de niveau document dans l'arbre de noms
- Arbre de structure Tagged PDF - Inspecter les éléments de structure logique, le texte d'accessibilité, la langue, les ID de contenu balisé et la hiérarchie pour les pages PDF balisées
- Préférences de la visionneuse - Lire
PrintCopies,PrintPageRanges,PrintScalingetPrintPaperHandlingdepuis le dictionnaire de préférences de visionneuse du document ; les PDF enregistrés ont par défaut une action d'ouverture première page Fit Height
Opérations sur le texte
- Extraction de texte - Extraire le texte de pages PDF avec une précision au niveau du caractère via les propriétés
Text,TextInRectangle,Characterindexé,CharacterRectangleetCharacterOrigin- Unités de lecture par phrase - TPdf.ReadingUnits, TPdf.DocumentReadingUnits, TPdfView.ReadingUnits et BuildReadingUnits exposent des enregistrements TPdfReadingUnit de taille phrase pour une écoute TTS synchronisée
- Surbrillance de lecture mot à mot -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollowAssocie un décalage de caractère de page au TPdfWordBox qui le contient, le met en évidence et renvoie l index du mot; Met en évidence un TPdfWordBox comme mot parlé courant dans TPdfView; Efface la superposition du curseur de lecture mot à mot courant dans TPdfView; Contrôle la couleur de superposition utilisée pour le curseur de lecture mot à mot courant; Contrôle si TPdfView fait défiler le mot parlé courant dans la vue pendant le suivi de lecture- Orchestration de session de lecture à voix haute -
TPdfReadingSession,TPdfSpokenText,SpokenTextAppend,BuildSpokenTextFromWords,SpokenToPageCharetEstimateSpokenWordIndexcoordonnent les moteurs TTS hôtes, les fragments parlés, les rappels de position des mots, l'estimation du rythme, la gestion pause / reprise et les mises à jour du curseur de mots de TPdfView- Recherche de texte - Trouver du texte avec options sensible à la casse, mot entier et recherche consécutive en utilisant
FindFirst,FindNext,FindPrevious- Superposition de surbrillance de recherche -
TPdfView.HighlightSearchTextanalyse la page de la vue courante et peint une véritable superpositionHighlightColoravec fusion alpha sur chaque correspondance à chaque redessin, renvoyant le nombre de correspondances.ClearHighlightsupprime la superposition ; naviguer vers une autre page l'efface automatiquement car les correspondances sont spécifiques à la page.HighlightColorvaut par défautclYellowet est publiée pour que les applications puissent la thématiser.- Propriétés des caractères - Accéder à la taille de police, au poids, à l'angle et au positionnement de caractères individuels avec les propriétés indexées
CharacterAngle,CharacterFontSize,CharacterFontWeight,CharacterGenerated,CharacterIsHyphenetCharacterMapError- Prise en charge des caractères européens -
AddTextcharge et met en cache automatiquement la police TrueType système correspondante avant de créer un objet texte, de sorte que les caractères accentués tchèques, français, allemands, espagnols, portugais, polonais et turcs que les polices standard intégrées de PDFium ne peuvent pas représenter sont désormais rendus correctement sans changement de code- Ajout de texte - Ajouter de nouveaux textes aux pages PDF avec polices, couleurs, transparence et rotation personnalisées
- Positionnement d'objets texte - Définir les positions par caractère pour des objets texte existants via
SetTextPositionsetTPdfSingleArray- Informations sur les polices - Récupérer les propriétés de police, notamment nom de famille, statut d'incorporation, angle italique, ascent / descent et données brutes de police, par objet de page
Prise en charge des annotations
- Types d'annotations - Prise en charge des annotations texte, lien, surbrillance, soulignement, barré et bien d'autres
- Création d'annotations - Créer de nouvelles annotations par programmation
- Édition d'annotations - Modifier les propriétés des annotations existantes, notamment couleur, transparence et contenu
- Annotations de lien - Gérer les liens internes et externes avec prise en charge des actions
Prise en charge des formulaires
- Accesseurs de remplissage vocal des formulaires - FocusedFormFieldValue, FocusedFormFieldName et FocusedFormFieldDetails sur TPdf et TPdfView exposent la valeur, le nom et TPdfFormFieldInfo du champ logique courant pour le remplissage de formulaire au clavier ou à la voix
- Types de formulaires - Prise en charge des formulaires AcroForm et XFA
- Remplissage de formulaires - Remplissage interactif des formulaires avec prise en charge JavaScript
- Sélection de la DLL V8 - Définir
EnableV8Engineavant le chargement pour utiliserpdfium.v8.dlldu dossierDLLs\Win32ouDLLs\Win64correspondant et interroger la disponibilité des helpers V8/XFA viaV8FeaturesAvailable,XfaBStrHelpersAvailableetGetRecommendedV8Flags- Accès aux champs - Lire et écrire les valeurs des champs de formulaire par index ou position
- Informations sur les champs - Accéder au type de champ, aux drapeaux, au nom et autres propriétés
- Drapeaux de champ - Mettre à jour les drapeaux de champs AcroForm par index ou position via
SetFormFieldFlags/SetFormFieldFlagsAt, notamment les drapeaux lecture seule, requis, mot de passe et multi-sélection- Aplatissement de formulaires -
GenerateFormAppearancesrégénère le flux d'apparence /AP pour chaque widget de formulaire sur chaque page, etFlattenPage/FlattenAllPagesintègrent annotations et champs de formulaire dans le contenu statique des pages (non modifiable)- Sélection de texte de widget de formulaire et Annuler / Rétablir - Sur le widget AcroForm actif, la vue expose
GetSelectedFormText(texte actuellement sélectionné),SelectAllFormText(sélectionner tous les caractères) etFormUndo/FormRedo/FormCanUndo/FormCanRedo(piloter l'historique d'édition par widget de PDFium). Les six court-circuitent en toute sécurité lorsque la vue est inactive ou qu'aucun widget n'a le focus.
Opérations sur les images
- Extraction d'images - Extraire des bitmaps de pages PDF avec la propriété indexée
Bitmap; itérerBitmapCountpour enregistrer chaque image sur le disque- Insertion JPEG -
AddJpegImageprend un TStream d'octets JPEG bruts et intègre l'image en tant que XObject /DCTDecode sans réencodage- Prise en charge des images -
AddPictureaccepte un objetTPictureavec conversion automatique de format via les classes graphiques VCL/LCL enregistrées- Insertion directe d'image -
AddImage(FileName)reconnaît tout format enregistré avec les unités graphiques VCL ou LCL (BMP, PNG via PngImage, JPG, ...) et partage le pipeline AddPicture.AddImage(TBitmap)évite l'intermédiaire TPicture, ce qui simplifie l'appel pour ceux qui disposent déjà d'un TBitmap issu d'un rendu ou de la génération par lot.- Profil ICC d'image - Les objets de page image exposent leurs données de profil ICC intégré lorsqu'elles sont présentes (binding pour
FPDFImageObj_GetIccProfileDataDecoded)- Génération de miniatures - Générer des bitmaps de miniature de la page courante via la propriété
Thumbnailou rendre n'importe quelle page en base un viaTPdf.RenderPageThumbnailsans modifierPageNumber
Unités d'aide
- Infrastructure asynchrone -
FPdfAsyncexposeIPdfCancellationToken/IPdfCancellationTokenSourcepour une sémantique d'annulation coopérative depuis l'interface utilisateur, un singleton réutilisablePdfNoCancellationTokenet un helper légerTPdfFuture<T>qui exécute un worker sur un thread d'arrière-plan et renvoie une enveloppeTPdfFutureResult<T>vers le thread principal, en distinguant les cas de succès, d'annulation et d'échec- Adaptateur de flux -
TPdfStreamAdapterfait le pont entre unTStreamPascal et les callbacksFPDF_FILEACCESSde PDFium afin queLoadCustomDocumentlise les blocs à la demande au lieu de mettre en tampon l'intégralité du PDF en mémoire- Composition de matrices -
FPdfMatrixencapsule leFS_MATRIXde PDFium avec une API OO pourTranslate,Scale,Rotate,HorizontalFlip,VerticalFlip,CentralFlip,SkewetMultiply.Multiplycapture les six éléments de la matrice avant de calculer les nouvelles valeurs de lignes, évitant l'écueil des implémentations Pascal alternatives où les éléments antérieurs sont écrasés lors du même appel et produisent des compositions incorrectes.- Rendu progressif annulable -
TPdf.RenderPageProgressivepilote la boucleFPDF_RenderPageBitmap_Start+RenderPage_Continuede PDFium et interroge unIPdfCancellationTokenentre les itérations via le callbackIFSDK_PAUSE, de sorte que de longs rendus haute résolution puissent être interrompus à mi-page au lieu de bloquer jusqu'à la fin. Renvoie unTPdfProgressiveStatusde typeprsDone,prsCancelledouprsFailed.- Chemin de rendu sans copie -
RenderPage/RenderTile/RenderPageProgressiveécrivent la sortie PDFium directement dans le tampon DIB duTBitmapde destination au lieu de transiter par un tampon interne, économisant une copie mémoire de largeur × hauteur × 4 octets par rendu - le plus perceptible à haute résolution (panneaux de miniatures, export de qualité d'impression, export par lot). Un chemin de repli par ligne de balayage est conservé lorsque le DIB de destination ne peut pas être encapsulé en toute sécurité.- Transformations bitmap basse vision - InvertPdfBitmap, GrayscalePdfBitmap et DuotonePdfBitmap transforment sur place les pixels TBitmap 32 bits rendus pour des vues inversées, grises ou bicolores basse vision
- Affichage basse vision en direct -
TPdfView.Optionsprend en chargereInvertetreNightDuotone, avecNightDuotoneInketNightDuotonePaperqui contrôlent la palette nocturne active avant le dessin des superpositions
Opérations de dessin
- Tracé de chemins - Créer des chemins avec des lignes, courbes de Bézier et formes fermées
- Suppression d'objets - Supprimer des objets de page et régénérer le contenu de la page depuis TPdf ou TPdfView
- Remplissage et contour - Configurer mode de remplissage, couleurs, transparence et propriétés de contour
- Modes de fusion - Prise en charge des divers modes de fusion PDF
- Styles de ligne - Configurer line cap, line join et largeur du contour
Signatures numériques
- Détection de signatures - Détecter et énumérer les signatures numériques dans les documents PDF
- Informations sur la signature - Accéder au contenu de la signature, à la plage d'octets, au sous-filtre, à la raison et à l'horodatage
- Permissions MDP - Interroger les permissions de détection et de prévention des modifications du document
Prise en charge des pièces jointes
- Accès aux pièces jointes - Lire, créer, modifier et supprimer des fichiers attachés intégrés
- Noms de pièces jointes - Accéder aux noms de fichiers des pièces jointes
- Types de pièces jointes - Lire les valeurs de sous-type MIME des fichiers intégrés lorsqu'elles sont présentes
- Signets - Naviguer dans les signets du document avec prise en charge hiérarchique via le tableau
Bookmarks,BookmarkChildren,HasBookmarkChildrenet les helpers de parcoursBookmarkFrom- Destinations nommées - Accéder aux destinations nommées par index ou nom via
Destination,DestinationByNameetDestinationCount- Étiquettes de page - Récupérer les étiquettes de chaque page via
PageLabel; utile lorsque les documents utilisent des chiffres romains pour les pages liminaires- Liens Web - Détecter et naviguer dans les liens Web sur les pages avec
WebLink,WebLinkCountetTPdfView.WebLinkAtPos- Annotations de lien - Accéder aux annotations de lien avec informations d'action et de destination via
LinkAnnotation,LinkAnnotationCountetTPdfView.LinkAnnotationAtPos- Gestion sécurisée des clics sur les liens - TPdfView déclenche les événements
OnAnnotationLinkClick/OnWebLinkClickavant le traitement automatique goto / URI, avec les actions launch désactivées par défaut. La détection de clic sur lien ne s'exécute que lorsque le geste est un clic plutôt qu'un glissement, en utilisant une nouvelle ancre MouseDown afin que les gestes de panoramique passent par le chemin de défilement existant sans changement.
Rendu
- Rendu de haute qualité - Rendre les pages vers un contexte de périphérique, un bitmap ou une tuile via
RenderPage/RenderTile, avec écritures directes sans copie dans le tampon DIB de destination- Rendu progressif annulable -
RenderPageProgressivepilote la boucle progressive de PDFium et interroge unIPdfCancellationTokenentre les itérations, renvoyantprsDone,prsCancelledouprsFailed. Le bitmap conserve le travail partiel effectué jusque-là en cas d'annulation.- Options de rendu - Optimisation de texte LCD (
reLcd), annotations (reAnnotations), niveaux de gris et drapeaux de mode d'impression- Hooks Skia - Les bindings bas niveau
FPDF_RenderPageSkiaetFPDF_FFLDrawSkiasont disponibles lorsque les appelants fournissent un SkCanvas externe (dépend des exports DLL fournis)- Sélection du mode d'impression - Définir les modes d'impression PDFium EMF, texte seul, PostScript, pass-through, masque d'image et Type 42 via
SetPdfPrintModeavecTPdfPrintMode- Superposition asynchrone - TPdfView peut afficher une superposition de chargement facultative pendant que les workers détenus par l'application effectuent le rendu avec des instances TPdf séparées
- Rotation de page - Prise en charge des rotations de 0, 90, 180 et 270 degrés (
ro0,ro90,ro180,ro270)- Détection de transparence - La propriété
Transparentindique si un objet de la page courante présente de la transparence, y compris les modes de fusion et l'alpha partiel
Visualisation (TPdfView)
- Modes d'affichage -
dmSingleContinuous,dmTwoPageContinuousetdmTwoPageContinuousWithCover(la page de couverture est seule, puis le défilement continue avec des doubles pages). Le helper de niveau unitéComputeSpreadPagesexpose le calcul des doubles pages sans instancier de visionneuse.- Mode d'ajustement -
FitModechoisit comment la page se positionne dans la fenêtre :pfmNone(zoom manuel),pfmActualSize(100 %),pfmFitPage(la page entière tient dans la fenêtre) etpfmFitWidth(la largeur de la page correspond à la largeur de la fenêtre). Le mode d'ajustement actif est réappliqué automatiquement lors d'un Resize et lorsque la page courante change ; définir Zoom directement annule le mode d'ajustement actif (FitMode revient àpfmNone), conformément à la convention standard des visionneuses PDF.- Contrôle du zoom - Zoom variable avec les helpers par page
PageZoom,PageWidthZoom,PageHeightZoometActualSizeZoom- Couleur de page -
PageColordissocie l'arrière-plan de la page PDF rendue duColordu contrôle environnant. La valeur par défaut estclWhite, de sorte que les pages PDF se rendent désormais en blanc papier quel que soit le thème de l'application hôte. Les visionneuses en mode sombre peuvent conserver la zone de défilement sombre tout en laissant la page PDF effective blanche (ou de toute couleur choisie par l'application).- Sélection de texte interactive - Sélection de texte par glissement utilisateur sur les pages PDF, avec basculement automatique de hit-test entre sélection et panoramique : cliquer sur un caractère démarre une sélection par glissement, cliquer sur un espace vide effectue un panoramique. Double-clic sélectionne le mot, triple-clic sélectionne la ligne,
Ctrl+Asélectionne la page (les deux pages en mode double page),Ctrl+Ccopie commeCF_UNICODETEXT,Maj+flèchesétend la sélection, le survol sur du texte fait passer le curseur àcrIBeamet glisser jusqu'au bord de la visionneuse fait défiler automatiquement la page. Nouvelles propriétés publiéesSelectionColoretOnSelectionChange; nouvelles propriétés publiquesHasSelection,SelectedText,SelectionCharCount,ClearSelection,SelectAll,CopySelectionToClipboard. Les modes d'affichage double page sélectionnent à travers les deux pages visibles avec jonction CR/LF. Un menu contextuel Copier par défaut est attaché automatiquement par clic droit lorsque l'hôte n'a pas affecté son proprePopupMenu. Verrouillé par le drapeauAllowUserTextSelectionde v1.17.0 pour les hôtes de bornes interactives.- Mappage des coordonnées - Convertir entre les coordonnées de périphérique de la visionneuse et les coordonnées de page PDF avec
DeviceToPage/PageToDevice, y compris des surcharges qui prennent unTRectet renvoient unTPdfRectangle- Sélection de texte et hit-test - Résoudre les caractères sous les points de la visionneuse avec
CharacterIndexAtPoset peindre les surbrillances de sélection de texte viaPaintSelection- Souris et clavier - Prise en charge complète des périphériques d'entrée avec défilement par glissement de souris, raccourcis PgUp / PgDn / Ctrl+Home / Ctrl+End et navigation par molette vers le haut / vers le bas. Ctrl+molette est réservé au zoom applicatif et ignoré par le gestionnaire de navigation.
- Verrouillage des entrées utilisateur -
AllowUserPageChangecontrôle les raccourcis clavier de page,ChangePageOnMouseScrollingcontrôle les sauts de page à la molette, etAllowUserTextSelectioncontrôle l'entrée de sélection de texte à la souris / clavier. Les trois ont pour valeur par défaut True ; passez-les à False pour verrouiller bornes interactives, panneaux de prévisualisation ou intégrations en lecture seule sans sous-classement.- Superposition de rendu asynchrone -
AsyncRendering,LoadingTextetLoadingColordessinent un petit indicateur « Loading... » par-dessus la page rendue, afin que les applications utilisant leur propre worker pour de longs rendus partagent une affordance visuelle cohérente. Les valeurs par défaut préservent le comportement existant.TPdfsérialise désormais les appels de rendu et de déchargement de page par instance ; les applications restent responsables de la répartition des workers et doivent éviter de muter un document pendant qu'un rendu est en cours.- Gestion sécurisée des clics sur les liens -
LinkOptionsest un ensemble publié qui contrôle le comportement automatique pour les quatre types d'actions de lien PDF :loAutoGoto(saut de page),loAutoOpenURI(ShellExecute),loAutoLaunch(ShellExecute) etloAutoEmbeddedGoto(réservé). Les valeurs par défaut activent uniquementloAutoGotoetloAutoOpenURI;loAutoLaunchetloAutoEmbeddedGotorestent désactivés afin qu'un clic intempestif ne puisse pas lancer un programme arbitraire.OnAnnotationLinkClicketOnWebLinkClickse déclenchent avant toute action automatique et permettent à l'application de marquer l'événement Handled ou de le rediriger.- Interaction avec les formulaires - Édition interactive de formulaires dans la visionneuse, plus les helpers de sélection / Annuler / Rétablir de la v1.23.0
- Stylisation visuelle -
PageShadowSize,PageShadowColoretPageBorderColorpeignent une ombre portée facultative sous le rectangle de la page et une bordure d'un pixel autour de celle-ci ;SmoothScrollanime désormais les commandes de barre de défilement ligne/page par segments pilotés par minuterie, tandis que le suivi du curseur reste immédiat- Navigation par miniatures -
TPdfThumbnailView(unitéFPdfThumbnail) rend une miniature de page par ligne dans un panneau latéral défilant avec surbrillance de survol et de sélection, plus une navigation par clic. Conçu pour se placer à côté d'un TPdfView. Propriétés :CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColor; événement :OnPageClick.
Compression
- Compression automatique - Lorsque la propriété
Compressedest True (valeur par défaut), tous les flux PDF sont garantis compressés FlateDecode lors de l'enregistrement- Post-traitement - Le moteur de compression analyse les données PDF enregistrées et compresse tout flux non compressé en utilisant la compression maximale zlib
- Reconstruction de référence croisée - Reconstruit automatiquement la table xref lorsque la compression des flux modifie les décalages d'octets
- Surcoût nul - Si tous les flux sont déjà compressés, les données passent sans modification
Sécurité
- Prise en charge des mots de passe - Ouvrir des documents PDF protégés par mot de passe
- Permissions - Lire les permissions de document et utilisateur ; la démo
SecurityAuditcombine permissions, pièces jointes, JavaScript de document, liens URI / Launch, signatures, XFA et disponibilité V8 en une surface de risque en lecture seule avec actions d'enregistrement de rapport TXT / JSON et de copie TXT- Suppression de la sécurité - Enregistrer des documents avec la sécurité supprimée (lorsque autorisé)
Impression
- Modes d'impression - Choisir entre les modes d'impression EMF, texte seul, PostScript Level 2 / 3, PostScript pass-through, EMF masque d'image et Type 42 via la fonction globale
SetPdfPrintMode- Préférences de visionneuse - Faire émerger l'intention de l'auteur du document via
PrintCopies,PrintPageRanges(plages de pages base un),PrintScalingetPrintPaperHandling;SetPdfPrintPaperHandlingDevModemappe l'indication recto-verso versDEVMODE.dmDuplexde Windows- Impression N-up - Les démos
PrintPreferencesDelphi, C++Builder et Lazarus montrent la composition de feuilles N-up (1 / 2 / 4 / 9 pages par feuille) avec filtrage pages paires / impaires, rendu en niveaux de gris, bordures de cellules de 1 pixel facultatives, préférences d'impression de l'auteur PDF et mappage de l'intention recto-verso viaSetPdfPrintPaperHandlingDevMode
Démos fournies
Les arborescences
Demo\Delphi,Demo\CBuilderetDemo\Lazarusfournissent des projets d'exemple exécutables qui exercent la surface d'API en direct dans les trois familles d'IDE. Points forts :
- PDFViewer / MultiPageViewer / SplitView - Utilisation TPdfView de bout en bout : chargement, navigation, zoom, rotation, double page, dispositions tenant compte de la couverture, et comparaison côte à côte de PDF Delphi / C++Builder / Lazarus avec commandes synchronisées ; les démos de visionneuse constituent également des tests de vitesse pratiques pour les PDF multi-gigaoctets, où des documents de 2,x Go peuvent atteindre un premier rendu utilisable presque immédiatement tandis que le rendu des pages reste réactif
- ViewerInteractionLab - Exemples Delphi, C++Builder et Lazarus axés sur l'interaction TPdfView pour les modes d'affichage, modes d'ajustement, couleurs de page, rotation, surbrillance de recherche, sélection de texte, prévisualisation du texte sélectionné, actions presse-papiers et retour de coordonnées DeviceToPage
- SearchAndSelect - Exemples de workflow Delphi, Lazarus et C++Builder axés sur la liste des résultats de recherche multi-pages, la navigation précédent / suivant, le saut aux résultats par double-clic,
HighlightSearchText, recherche sensible à la casse / mot entier,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelectionet modes d'affichage double page- PreflightReport - Démos de workflow Delphi, Lazarus et C++Builder plus un compagnon console Delphi autour de
FPdfPreflightReportréutilisable, collectant les résultats de validation PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R et PDF/VT en lignes récapitulatives de statut, priorité, catégorie de problème, comptes par catégorie, action suivante, recommandations de problèmes, prévisualisation texte / Markdown / JSON / CSV, rapports TXT / HTML / Markdown / JSON / CSV, génération de rapports scriptable, traitement par lots de listes et de répertoires avec routage des répertoires de rapport, synthèses agrégées TXT / JSON / HTML, manifestes de lignes CSV, intégration facultative de pièces jointes de rapport, et codes de sortie de blocage CI- ContentExtractionLab - Workflow unifié d'inventaire de contenu Delphi, Lazarus et C++Builder pour métadonnées du document, texte de page, objets de page, images, pièces jointes, liens, annotations, signets et métriques de police / caractère avec export TXT / JSON, sélection toutes / aucune catégorie, enregistrement du PDF source et actions de copie de rapport
- WatermarkStamp - Workflow Form XObject réutilisable Delphi, Lazarus et C++Builder pour filigranes centrés, tampons d'angle et étiquettes de numéro de page sur un PDF cible multi-pages
- CreatePDF - Construire un PDF multi-pages à partir de zéro avec texte, images, chemins, tableaux et composition de filigrane ; inclut une option « Texte européen » pour écrire du texte accentué tchèque / français / allemand / espagnol / portugais / polonais / turc afin de vérifier la sélection des polices et la gestion Unicode
- ExtractText / ExtractImages / ContentExtractionLab - Enregistrer le texte extrait (y compris une sortie séparée par page) ou les images intégrées sur disque, ou générer un rapport d'inventaire de contenu multi-catégorie en une passe
- FormFill - Lire les métadonnées des champs AcroForm, écrire les valeurs, régénérer les apparences /AP et enregistrer le résultat éditable ou aplati
- FontProperties - Inspecter les métadonnées de caractère / police indexées à travers TPdf et TPdfView dans Delphi, C++Builder et Lazarus
- MergePDF / SplitPDF - Combiner plusieurs PDF sources (avec sélection de plage de pages par fichier, chemin de sortie optionnel, journal d'exécution, bouton d'annulation et récapitulatif de fusion) ou diviser un PDF en fichiers de sortie par page
- PDFtoJpg / BatchExport - Conversion PDF vers JPG Delphi, C++Builder et Lazarus en une fois ou par lots multi-fichiers avec progression globale par fichier, progression courante par page, entrées DPI / qualité / mot de passe, et un lot annulable de manière coopérative soutenu par
IPdfCancellationToken- StandardsLab - Exemples de workflow Delphi, C++Builder et Lazarus pour validation PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R et PDF/VT, rapport de problèmes et sorties d'enregistrement orientées normes
- PrintPDF / PrintPreferences - Impression PDF standard Delphi, C++Builder et Lazarus avec prévisualisation, plages de pages, copies, assemblage, progression et annulation (PrintPDF), plus composition de feuilles N-up Delphi, C++Builder et Lazarus avec filtrage paires / impaires et préférences d'impression de l'auteur PDF (PrintPreferences)
- SecurityAudit - Exemples de surface de risque en lecture seule Delphi, C++Builder et Lazarus pour permissions, pièces jointes, actions JavaScript, liens URI / Launch, liens Web, signatures, état XFA, disponibilité des helpers V8 / XFA, et rapports d'audit TXT / JSON
- Attachment - Créer des PDF, ajouter / lister / extraire / supprimer / enregistrer des pièces jointes intégrées avec affichage de sous-type MIME
- ImageToPDF - Conversion par lot d'images en un PDF, une image par page, avec prévisualisation et progression par image (Delphi, C++Builder et Lazarus)
Les suites de régression Delphi, C++Builder et Lazarus couvrent 147 (Pas) / 123 (C++) cas partageant les mêmes PDF de fixture, de sorte que le comportement reste aligné au niveau octet dans les trois familles d'IDE.
Plateformes prises en charge
- Delphi - Delphi XE5 (RAD Studio XE5) jusqu'à Delphi 13.1 Florence (RAD Studio 13.1)
- C++Builder - C++Builder XE5 (RAD Studio XE5) jusqu'à C++Builder 13.1 Florence
- Lazarus - Prise en charge Free Pascal / Lazarus
- Win32 / Win64 - Plateformes Windows 32 bits et 64 bits