Qu'est-ce qu'un fichier PDF ? | Base de connaissances
Introduction
Comme vous le savez déjà grâce à l’article sur les “PDL”, le PDF est un langage de description de page statique qui a une structure stricte et immuable.
Le PDF est l’un des langages de description de page, sinon l’un des plus populaires, en raison de la grande variété de fonctionnalités que les développeurs d’Adobe ont ajoutées à ses spécifications. De plus, Adobe fournit également aux utilisateurs des outils capables de réaliser ces fonctionnalités dans les documents. Cet article est un bref aperçu de la syntaxe, de la structure et des fonctionnalités du PDF.
Qu’est-ce qu’un fichier PDF ?
L’objectif initial du développement du format PDF ou Portable Document Format abrégé était de créer un format de document répondant à de nombreuses exigences d’échange de documents numériques dans des environnements indépendants du périphérique et de la résolution. Ces exigences incluent une vue interactive, une navigation hautes performances, une faible occupation de l’espace disque, la collaboration sur des documents, la prise en charge de différents contenus multimédias, le cryptage, la signature, la création de formulaires, la présentation, etc. Malgré l’intention initiale de fournir aux entreprises un format exhaustif pour l’échange de documents numériques, des fonctionnalités d’impression de haute qualité ont également été ajoutées à la spécification, bien que plus tard.
Syntaxe du fichier PDF
PDF a un modèle d’imagerie dérivé de celui de PostScript, utilise également 1 à 2 caractères, des opérateurs longs, ainsi qu’au format AI, et possède également une syntaxe BNF postfix, où tous les opérandes nécessaires précèdent l’opérateur.
operand1...operandm operator |
Outre la longueur des opérateurs, il existe certaines différences entre les opérateurs PDF et PostScript. En PDF, tous les opérandes nécessaires doivent précéder les opérateurs, tandis qu’en Postscript, les opérandes sont obtenus à partir de la pile PostScript. En PDF, l’opérateur ne renvoie pas de résultat comme il peut l’être en PostScript. L’opérateur PDF exécute une action pour composer une page, par exemple dessiner des graphiques ou du texte ou définir certaines propriétés dans un environnement graphique. En PostScript, les opérateurs font tout le travail.
Habituellement, la plupart du contenu des fichiers PDF est compressé avec l’encodage Flate et est donc binaire. Outre la compression, les fichiers PDF peuvent également être cryptés pour limiter l’accès au contenu du document. Par conséquent, l’ensemble du fichier doit être traité comme binaire. Ce n’est que dans le cas où un fichier PDF n’est ni compressé ni crypté et ne contient pas de contenu binaire, tel que des images, du son, des vidéos, etc., qu’il peut être considéré comme textuel.
Objets de spécification PDF
Dans la spécification PDF, l’objet est synonyme de type, tandis qu’en PostScript, il existe des types qui peuvent être primitifs et complexes et ces derniers peuvent être appelés « objets ». Par conséquent, tous les types de fichiers PDF, qu’ils soient simples ou complexes, sont des objets. Le langage PDF se compose de valeurs booléennes, d’entiers, de nombres réels, de noms, de chaînes, de tableaux, de dictionnaires et de flux. Les chaînes peuvent être au format littéral ou hexadécimal, comme indiqué ci-dessous.
( This is a string )<4E6F762073686D6F7A206B6120706F702E> | literal formathexadecimal format |
Les tableaux sont délimités par des crochets. Il comprend un sous-type Rectangle - tableau avec 4 éléments.
Les dictionnaires stockent les données dans des paires clé-valeur où la clé est un nom ou une chaîne (pour le dictionnaire de noms) et la valeur est un objet ou une référence d’objet. Il est entouré de crochets à double angle. Les dictionnaires ont un champ Type qui indique quelles données sont stockées dans un dictionnaire donné.
<< /Type /Example /Subtype /DictionaryExample /Version 0 . 01 /IntegerItem 12 /StringItem ( a string ) /Subdictionary << /Item1 0 . 4 /Item2 true /LastItem ( not ! ) /VeryLastItem ( OK ) >>>>endobj |
Les objets peuvent être directs et indirects. Les objets indirects sont ceux qui peuvent être référencés depuis d’autres objets par leur ID.
Les flux sont des objets qui contiennent généralement des données binaires ou codées. Ils sont illisibles par l’homme et n’ont aucune limite de longueur. Habituellement, les flux de fichiers PDF contiennent du contenu de page compressé, des images ou d’autres médias. L’objet Stream se compose d’un dictionnaire direct avec une longueur du flux et un tableau de filtres utilisés pour coder le flux, ainsi que des données codées après le mot-clé stream.
181 0 obj << /Length 473 0 R /Subtype /Image /Width 2 /Height 19 /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter [/ASCII85Decode /FlateDecode] >>streamGb"[2*s<F2i'/7_!,1%/hZ~>endstreamendobj |
Opérateurs PDF
Les opérateurs sont des sortes d’objets directs qui créent des graphiques de page et, comme nous l’avons mentionné précédemment, sont représentés par des mots-clés d’une ou deux lettres.
Il existe deux types d’opérateurs PDF :
* executing actions or setting properties of the graphics state.
PDF operator x y mx y lx1 y1 x2 y2 x3 y3 chx y width height rea b c d e f cmSsfFWfont size TfcharSpace TcqQlineWidth wlineCap Jfont size TfcharSpace Tc | Description commencer un nouveau sous-chemin en déplaçant le point actuel aux coordonnées (x, y)ajouter un segment de ligne droite du point actuel au point (x, y)ajouter une courbe de Bézier cubique au chemin actuelfermer le sous-chemin actuelajouter un rectangle au chemin actuelmodifier la matrice de transformation actuelle en concaténant la matrice spécifiéetracer le cheminle même chemin, mais fermer le cheminremplir le cheminle même chemin, mais fermer le cheminmodifier le chemin de détourage actuel en l'intersectant avec le chemin actueldéfinir la police du texte sur font et la taille de la police du texte sur sizedéfinir l'espacement des caractères sur charSpaceenregistrer l'état graphique actuel sur la pile d'états graphiquesrestaurer l'état graphique à partir de la pile d'états graphiquesdéfinir la largeur de ligne dans l'état graphiquedéfinir le style de fin de ligne dans l'état graphiquedéfinir la police du texte sur font et la taille de la police du texte sur sizedéfinir l'espacement des caractères sur charSpace |
* grouping
PDF operator BT...ETBI...EIBMC...EMCBX...EX | Description commencer et terminer un objet textecommencer et terminer un objet imagecommencer et terminer une séquence de contenu marquécommencer et terminer une section de compatibilité |
Des types particuliers d’opérateurs de regroupement sont BX…EX. Ils contiennent des parties du contenu de la page où les objets non identifiés doivent être ignorés. Ce sont donc des équivalents des pseudo-commentaires AI %_.
Structure du fichier PDF
Le fichier PDF comporte quatre éléments structurels obligatoires.
- En-tête d’une ligne, où la version du langage PDF est écrite
%PDF-1.5 |
Corps qui contient les objets du document. La structure du corps sera décrite plus loin dans cet article.
Table de concordance. Il est utilisé pour un accès aléatoire rapide aux objets du document. Il contient un décalage en octets vers le début des objets depuis le début du fichier.
xref0 60000000003 65535 f0000000017 00000 n0000000081 00000 n0000000000 00007 f0000000331 00000 n0000000409 00000 n |
- Bande-annonce, pointe vers la dernière table de concordance et contient une quantité commune d’objets dans les tables de concordance, L’identifiant du document et les références à :
- table de concordance précédente s’il y en a plusieurs dans le dossier ;
- la racine du document représentée par le dictionnaire Catalogue ;
- Dictionnaire de méta-informations avec les champs Auteur, Créateur, Titre, Mots-clés, date de création et de modification ;
- Dictionnaire de cryptage si le document est crypté.
trailer << /Size 15 /Root 2 0 R /Info 1 0 R >>startxref6224 |
Une nouvelle table de concordance et une nouvelle bande-annonce sont ajoutées après chaque mise à jour du document. Il sera décrit plus loin dans l’article.
Structure du document
Le document PDF a une structure arborescente dont la racine est un dictionnaire de catalogue.
Le catalogue contient des références sur le sous-arbre de description des pages, le sous-arbre de plan et d’autres sous-arbres et nœuds feuilles au niveau du document.
2 0 obj << /Type /Catalog /Pages 3 0 R /Outlines 4 0 R /PageMode /UseOutlines /ViewerPreferences 5 0 R /OpenAction [6 0 R /Fit] >>endobj |
L’arborescence des pages contient l’ordre des nœuds d’arborescence de pages et des nœuds de feuille de page. La structure exactement arborescente d’un ensemble de pages ainsi que l’algorithme de recherche permettent une navigation rapide sur des milliers de pages pour trouver celle dont vous avez besoin.
Le dictionnaire de pages contient une référence sur le flux de contenu qui peut être compressé tel qu’il est sur la figure ci-dessus ou non compressé. Dans le dernier cas, nous verrions les opérateurs PDF dans un texte lisible par l’homme, comme dans la figure ci-dessous.
7 0 obj << /Length 8 0 R >>stream1 0 0 1 0 0 cm0 0 m595 0 l595 842 l0 842 lhWnq/Alpha1 gs0 0 0 rg0 0 0 RG0 Jq0.96593 0.25882 -0.25882 0.96593 0 0 cm1 0 0 1 0 0.25882 cm0.02 w-0.96593 0 m0 -0.25882 l0 -0.25882 0 -0.25882 0 -0.25882 c0.14294 -0.25882 0.25882 -0.14294 0.25882 0 c0.25882 0.14294 0.14294 0.25882 0 0.25882 chSQendstreamendobj |
Outre un tableau de nœuds enfants (il peut s’agir d’une arborescence de pages ou de nœuds de page) Pages, le dictionnaire contient une référence au dictionnaire de ressources, qui à son tour fait référence aux polices, aux ProcSets, aux images (XObject), etc.
9 0 obj << /ProcSet 10 0 R /XObject 11 0 R /Font 12 0 R /ExtGState 13 0 R >>endobj |
Les annotations et autres sous-arbres seront mentionnés avec désinvolture dans la section Fonctionnalités
Caractéristiques
Possibilités graphiques du format PDF
Cela n’a aucun sens de mentionner les possibilités communes à la plupart des langages de description de page pour dessiner des graphiques et du texte. Nous disons simplement que la richesse des polices et des espaces colorimétriques pris en charge est la même que celle de PostScript.
Fonts - Adobe Type 0- Adobe Type 1- Compact Fonts (CFF)- Chameleon- TrueType- CID-keyed | Color spaces - DeviceGray- DeviceRGB- DeviceCMYK- DeviceN- Separated colors- Spot- CIE-based |
Transparence
Le PDF prend en charge la transparence.
Fichiers externes
Tout fichier multimédia ou document peut être intégré au PDF ou référencé à partir d’un document.
Liens hypertextes
Les hyperliens sont pris en charge en PDF.
Vue électorale et interactive
PDF permet d’afficher uniquement les parties du contenu et son apparence nécessaires à certains usages et de masquer les autres. Il est utile, par exemple, lors de l’importation de graphiques Adobe Illustrator comportant des calques dont certains sont nécessaires pour travailler dans Adobe Illustrator, mais ne sont pas nécessaires pour l’affichage dans Adobe Acrobat Reader. Un autre cas de point de vue électoral peut être un article écrit dans différentes langues ou présenté pour les utilisateurs handicapés mais enregistré dans un seul document. Il peut également y avoir différentes variantes d’utilisation : une seule vue pour la visualisation, la conception et l’impression.
Une vue interactive du PDF inclut les capacités :
- pour afficher/ajouter des annotations à des parties de documents ;
- pour éditer le document avec la possibilité de visualiser toutes les éditions ;
- ordonner le contenu du document dans différents fils d’articles rassemblés par certains sujets.
L’annotation est une sorte de boîte flottante contenant des notes, du son, de la vidéo ou un autre contenu.
Navigation interactive
La navigation entre les différentes parties des documents peut être réalisée de plusieurs manières :
- parcourir le document du début à la page nécessaire consécutivement page par page ;
- passer d’une partie du document à une autre avec des éléments de plan ;
- passer d’une page à une autre en cliquant sur les images miniatures ;
- passer d’une partie du document à une autre avec les éléments du fil de discussion de l’article ;
- passer d’une partie du document à une autre à l’aide des fenêtres et se déplacer entre elles en appuyant sur
.
Le déplacement dans les fenêtres d’affichage et le masquage de certaines parties du document sont réalisés à l’aide des dictionnaires Viewport et NavigationNode.
Mises à jour incrémentielles
Toutes les modifications apportées au document PDF sont ajoutées au document sans effacer le contenu précédent. Et chaque fois que les documents sont modifiés, de nouvelles xréfs (tables de références croisées) et des bandes-annonces sont ajoutées. La nouvelle table de références croisées contient des références sur les objets ajoutés ou supprimés et sur la table de références croisées précédente. Un tel mécanisme permet de rassembler le contenu final du document et, en même temps, de stocker les états précédents du document.
Performance
La haute performance de navigation dans les pages est assurée par la structure arborescente des pages et un algorithme de recherche efficace. Cependant, il peut être encore augmenté en combinant des éléments graphiques répétitifs en un seul objet, appelé Form XObject et en utilisant un seul objet à tous les endroits nécessaires. Il existe également un moyen d’optimiser l’ensemble du document pour une vue performante. C’est la linéarisation. La linéarisation a été initialement inventée pour une visualisation efficace des documents PDF accessibles sur le Web. Le document PDF linéarisé est en lecture seule, toute modification nécessitera une linéarisation répétée.
Les performances élevées de navigation entre les objets du document sont obtenues grâce à des tables de références croisées qui stockent les décalages d’objets depuis le début du fichier.
Compression
La compression de documents PDF, généralement un codage plat, permet la création de documents volumineux avec une occupation relativement faible de l’espace disque. Par exemple, le fichier de spécifications PDF qui contient 758 pages avec un plan, des vignettes, des images et des tableaux a une taille d’environ 9 Mo.
Sécurité
Les documents PDF peuvent être cryptés pour donner un accès différencié uniquement à certains utilisateurs et ils peuvent être signés. La fonctionnalité de signature numérique permet d’authentifier l’identité de l’utilisateur et le contenu du document. La signature numérique lie l’état du document lorsqu’il est signé avec les informations de l’utilisateur. La signature numérique peut prendre n’importe quelle forme : du scan purement mathématique au scan rétinien si le gestionnaire de signature correspondant est fourni.
Formulaires interactifs
Il est utilisé pour collecter des informations auprès des utilisateurs. Les formulaires interactifs, ou appelés AcroForms, peuvent valider, formater et envoyer les données utilisateur à un serveur.
Présentation
Il existe plusieurs moyens de présentation en PDF :
- actions exécutées à l’ouverture du document ;
- actions exécutées à l’ouverture de la page ;
- durée d’affichage d’une page ;
- effets qui apparaissent lors du passage de page en page.
Contenu multimédia
Des images, des sons, des clips vidéo et des graphiques 3D peuvent être ajoutés aux documents PDF.
Données d’extraction
PDF permet d’ajouter certains balises qui offrent aux applications externes la possibilité d’extraire les données nécessaires. Document avec un tel balisage appelé PDF balisé.
Assistance prépresse
La préparation à la publication inclut les marques d’impression, la séparation des couleurs, les intentions de sortie et le recouvrement.
A quoi sert un fichier PDF ?
La principale application des documents PDF est l’échange électronique de documents et leur visualisation dans différents environnements.
Comment créer un fichier PDF ?
La création et l’édition de documents PDF sont possibles dans les applications Adobe Acrobat autonomes.
Comment ouvrir un fichier PDF ?
Vous pouvez ouvrir et afficher des fichiers PDF dans l’application autonome Adobe Acrobat Reader ou dans le navigateur Google Chrome avec le plugin PDF. Des utilitaires simples tels que Sumatra PDF, Foxit Reader ou Free PDFReader vous aideront également. Une autre façon consiste à visualiser le PDF en ligne, par exemple sur Google Drive.