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 format
hexadecimal 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.

Objets indirects PDF 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]
  >>
stream
Gb"[2*s<F2i'/7_!,1%/hZ~>
endstream
endobj

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 m
x y l
x1 y1 x2 y2 x3 y3 c
h
x y width height re
a b c d e f cm
S
s
f
F
W
font size Tf
charSpace Tc
q
Q
lineWidth w
lineCap J
font size Tf
charSpace 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 actuel
fermer le sous-chemin actuel
ajouter un rectangle au chemin actuel
modifier la matrice de transformation actuelle en concaténant la matrice spécifiée
tracer le chemin
le même chemin, mais fermer le chemin
remplir le chemin
le même chemin, mais fermer le chemin
modifier le chemin de détourage actuel en l'intersectant avec le chemin actuel
définir la police du texte sur font et la taille de la police du texte sur size
définir l'espacement des caractères sur charSpace
enregistrer l'état graphique actuel sur la pile d'états graphiques
restaurer l'état graphique à partir de la pile d'états graphiques
définir la largeur de ligne dans l'état graphique
définir le style de fin de ligne dans l'état graphique
définir la police du texte sur font et la taille de la police du texte sur size
définir l'espacement des caractères sur charSpace

* grouping

PDF operator

BT...ET
BI...EI
BMC...EMC
BX...EX

Description

commencer et terminer un objet texte
commencer et terminer un objet image
commencer 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.

Structure du fichier PDF

  1. En-tête d’une ligne, où la version du langage PDF est écrite

%PDF-1.5

  1. Corps qui contient les objets du document. La structure du corps sera décrite plus loin dans cet article.

  2. 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.

xref
0 6
0000000003 65535 f
0000000017 00000 n
0000000081 00000 n
0000000000 00007 f
0000000331 00000 n
0000000409 00000 n

  1. 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 à :

trailer
  <<
    /Size 15
    /Root 2 0 R
    /Info 1 0 R
  >>
startxref
6224

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.

Structure du document PDF

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.

Flux de contenu de page PDF

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
  >>
stream
1 0 0 1 0 0 cm
0 0 m
595 0 l
595 842 l
0 842 l
h
W
n
q
/Alpha1 gs
0 0 0 rg
0 0 0 RG
0 J
q
0.96593 0.25882 -0.25882 0.96593 0 0 cm
1 0 0 1 0 0.25882 cm
0.02 w
-0.96593 0 m
0 -0.25882 l
0 -0.25882 0 -0.25882 0 -0.25882 c
0.14294 -0.25882 0.25882 -0.14294 0.25882 0 c
0.25882 0.14294 0.14294 0.25882 0 0.25882 c
h
S
Q
endstream
endobj

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 :

L’annotation est une sorte de boîte flottante contenant des notes, du son, de la vidéo ou un autre contenu.

La navigation entre les différentes parties des documents peut être réalisée de plusieurs manières :

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 :

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.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.