Le format PDF ( Portable Document Format ), normalisé sous la norme ISO 32000 , est un format de fichier développé par Adobe en 1993, utilisé pour présenter des documents, y compris la mise en forme du texte et les images, indépendamment des logiciels d'application , du matériel et des systèmes d'exploitation . Basé sur le langage PostScript , un fichier PDF contient une description complète d'un document à mise en page fixe, incluant le texte, les polices , les graphiques vectoriels , les images matricielles et toutes les autres informations nécessaires à son affichage.
Le format PDF trouve son origine dans le « Projet Camelot », initié par John Warnock, cofondateur d’Adobe, en 1991. Il a été normalisé sous la norme ISO 32000 en 2008. Sa maintenance est assurée par le comité technique ISO TC 171 SC 2 WG8, dont la PDF Association est le comité de pilotage. La dernière édition, ISO 32000-2:2020, a été publiée en décembre 2020.
Les fichiers PDF peuvent contenir une grande variété d'éléments, outre du texte et des graphiques, tels que des éléments de structuration logique, des éléments interactifs (annotations, champs de formulaire , etc.), des calques , du contenu multimédia (y compris vidéo), des objets tridimensionnels (U3D ou PRC , par exemple) et divers autres formats de données . La spécification PDF prévoit également le chiffrement et les signatures numériques , les pièces jointes et les métadonnées afin de permettre les flux de travail nécessitant ces fonctionnalités.
Histoire
Le développement du format PDF a débuté en 1991 lorsque John Warnock a rédigé un article pour un projet alors nommé Camelot, dans lequel il proposait la création d'une version simplifiée de PostScript appelée Interchange PostScript (IPS). Contrairement au PostScript traditionnel, qui était principalement axé sur le rendu des travaux d'impression vers les périphériques de sortie, l'IPS serait optimisé pour l'affichage des pages sur n'importe quel écran et sur n'importe quelle plateforme.
Adobe a mis la spécification PDF à disposition gratuitement en 1993. Au cours des premières années, le PDF était populaire principalement dans les flux de travail de publication assistée par ordinateur et était en concurrence avec plusieurs autres formats, notamment DjVu , Envoy , Common Ground Digital Paper, Farallon Replica et même le propre format PostScript d'Adobe.
Le format PDF était un format propriétaire contrôlé par Adobe jusqu'à sa publication en tant que norme ouverte le 1er juillet 2008 par l' Organisation internationale de normalisation ( ISO) sous la référence ISO 32000-1:2008 À cette date, la gestion de la spécification a été confiée à un comité ISO composé d'experts bénévoles du secteur. En 2008, Adobe a publié une licence publique de brevets pour la norme ISO 32000-1, accordant des droits d'utilisation exempts de redevances pour tous les brevets détenus par Adobe et nécessaires à la création, l'utilisation, la vente et la distribution d'implémentations conformes au format PDF
La version 1.7, sixième édition de la spécification PDF devenue la norme ISO 32000-1, intègre des technologies propriétaires définies par Adobe, telles que l' architecture Adobe XML Forms Architecture (XFA) et une extension JavaScript pour Acrobat. Ces technologies sont référencées par la norme ISO 32000-1 comme normatives et indispensables à sa mise en œuvre complète. Elles ne sont pas normalisées et leur spécification est uniquement disponible sur le site web d'Adobe. Nombre d'entre elles ne sont pas prises en charge par les implémentations tierces de PDF.
L’ISO a publié la version 2.0 du format PDF, ISO 32000-2, en 2017, remplaçant ainsi la spécification fournie par Adobe. En décembre 2020, la deuxième édition du PDF 2.0, ISO 32000-2:2020, a été publiée, apportant des clarifications, des corrections et des mises à jour critiques aux références normatives. L’ISO 32000-2 n’inclut aucune technologie propriétaire parmi ses références normatives. En avril 2023, la PDF Association a mis l’ISO 32000-2 à disposition en téléchargement gratuit.
Détails techniques
Un fichier PDF est souvent une combinaison de graphiques vectoriels , de texte et d'images bitmap . Les principaux types de contenu d'un PDF sont :
- Texte composé stocké sous forme de flux de contenu (c'est-à-dire non encodé en texte brut ) ;
- Graphiques vectoriels pour les illustrations et les dessins composés de formes et de lignes ;
- Graphiques raster pour les photographies et autres types d'images ; et
- Autres objets multimédias.
Dans les versions ultérieures du format PDF, un document PDF peut également prendre en charge les liens (à l'intérieur du document ou de la page Web), les formulaires, JavaScript (initialement disponible en tant que plugin pour Acrobat 3.0), ou tout autre type de contenu intégré pouvant être géré à l'aide de plugins.
Le format PDF combine trois technologies :
- Un sous-ensemble équivalent du langage de programmation de description de page PostScript, mais sous forme déclarative, pour générer la mise en page et les graphismes.
- Un système d'intégration /remplacement de polices permettant aux polices d'être incluses dans les documents.
- Un système de stockage structuré pour regrouper ces éléments et tout contenu associé dans un seul fichier, avec compression des données le cas échéant.
Langage PostScript
PostScript est un langage de description de page exécuté par un interpréteur pour générer une image. Il prend en charge les graphiques et possède des fonctionnalités standard des langages de programmation, telles que les instructions conditionnelles et les boucles . Le format PDF est un sous-ensemble de PostScript, simplifié pour supprimer certaines fonctionnalités de contrôle de flux , tout en conservant les commandes graphiques.
PostScript a été initialement conçu pour un cas d'utilisation radicalement différent : la transmission de travaux d'impression linéaires unidirectionnels. L'interpréteur PostScript collectait une série de commandes jusqu'à rencontrer la showpagecommande `print`, puis exécutait toutes les commandes pour rendre une page sous forme d'image raster destinée à une imprimante. PostScript n'était pas prévu pour le stockage à long terme ni pour l'affichage interactif en temps réel de documents électroniques sur des écrans d'ordinateur. Il n'était donc pas nécessaire de prendre en charge autre chose que le rendu séquentiel des pages. En cas d'erreur dans le document imprimé final, l'utilisateur la corrigeait au niveau de l'application et envoyait un nouveau travail d'impression sous la forme d'un fichier PostScript entièrement nouveau. Ainsi, le rendu précis d'une page donnée dans un fichier PostScript n'était possible que par l'exécution cumulative de toutes les commandes précédentes ayant servi à dessiner toutes les pages précédentes. Chacune de ces commandes pouvait affecter les pages suivantes, ainsi que celles nécessaires au rendu de la page en question. Il n'existait aucun moyen simple de contourner ce processus pour passer directement à une autre page.
Traditionnellement, pour convertir un fichier PostScript en PDF, un fichier PostScript source (c’est-à-dire un programme exécutable) sert de base à la génération de code PDF de type PostScript (voir par exemple Adobe Distiller ). Cette génération s’effectue grâce à des techniques de compilation standard telles que le déroulement de boucles , l’intégration de code et la suppression des branches inutilisées, ce qui produit un code purement déclaratif et statique. Le résultat est ensuite intégré dans un format conteneur , avec toutes les dépendances nécessaires à un rendu correct (fichiers externes, graphiques ou polices de caractères auxquels le document fait référence), puis compressé .
En tant que format de document, le PDF présente plusieurs avantages par rapport au PostScript :
- Le format PDF ne contient que du code PostScript statique et déclaratif pouvant être traité comme des données, et ne nécessite ni interpréteur ni compilateur de programme complet. Ceci évite la complexité et les risques de sécurité liés à un moteur d'une complexité bien plus élevée.
- Tout comme Display PostScript , le format PDF prend en charge les graphiques transparents depuis la version 1.4, contrairement au format PostScript standard.
- Le format PDF impose la règle selon laquelle le code d'une page donnée ne peut affecter aucune autre page. Cette règle est également fortement recommandée pour le code PostScript, mais doit être implémentée explicitement (voir, par exemple, les conventions de structuration des documents ), car PostScript est un langage de programmation complet qui permet une plus grande flexibilité et ne se limite pas aux concepts de pages et de documents.
- Toutes les données nécessaires au rendu sont incluses dans le fichier lui-même, ce qui améliore la portabilité.
Ses inconvénients sont les suivants :
- Les environnements de bureau standard ne disposent parfois pas de logiciels permettant de générer des PDF, alors que toute application capable d'imprimer un document peut l'enregistrer sous forme de fichier PostScript.
- N’étant pas un langage de programmation complet – et présentant toutes les limitations que cela implique.
- Une taille de fichier (parfois) plus importante.
Depuis la version 1.6, le format PDF prend en charge l'intégration de documents 3D interactifs : les dessins 3D peuvent être intégrés à l'aide des formats U3D ou PRC et de divers autres formats de données.
Format de fichier
Un fichier PDF est organisé à l'aide de caractères ASCII , à l'exception de certains éléments qui peuvent avoir un contenu binaire.
Le fichier commence par un en-tête contenant un nombre magique (sous forme de chaîne lisible) et la version du format, par exemple %PDF-1.7. Ce format est un sous-ensemble du format COS (« Carousel Object Structure »). Un fichier arborescent COS est principalement constitué d’ objets , dont il existe neuf types :
- Valeurs booléennes , représentant vrai ou faux
- Nombres réels
- Entiers
- Les chaînes de caractères , placées entre parenthèses (
(...)) ou représentées en hexadécimal entre chevrons simples (<...>). Les chaînes de caractères peuvent contenir des caractères de 8 bits. - Noms commençant par une barre oblique (
/) - Tableaux , collections ordonnées d'objets encadrées par des crochets (
[...]) - Dictionnaires , collections d'objets indexés par des noms encadrés par des doubles chevrons (
<<...>>) - Flux , contenant généralement de grandes quantités de données binaires éventuellement compressées, précédés d'un dictionnaire et encadrés par les mots-clés
streametendstream. - L' objet nul
Les commentaires utilisant des caractères 8 bits précédés du signe pourcentage ( %) peuvent être insérés.
Les objets peuvent être directs (intégrés à un autre objet) ou indirects . Les objets indirects sont numérotés avec un numéro d'objet et un numéro de génération , et définis entre les mots clés `<object>` objet ` endobj<generation>` s'ils se trouvent à la racine du document. À partir de la version 1.5 du format PDF, les objets indirects (à l'exception des autres flux) peuvent également être placés dans des flux spéciaux appelés flux d'objets (marqués ` <object> /Type /ObjStm`). Cette technique permet d'appliquer des filtres de flux standard aux objets non inclus dans un flux, réduit la taille des fichiers contenant un grand nombre de petits objets indirects et est particulièrement utile pour les PDF balisés . Les flux d'objets ne permettent pas de spécifier le numéro de génération d'un objet (autre que 0).
Une table d'index, également appelée table de références croisées, est située vers la fin du fichier et indique le décalage en octets de chaque objet indirect par rapport au début du fichier. Cette conception permet un accès aléatoire efficace aux objets du fichier et autorise également de petites modifications sans réécrire l'intégralité du fichier ( mise à jour incrémentale ). Avant la version 1.5 du format PDF, la table était toujours au format ASCII spécifique, marquée par le xrefmot-clé et placée après le corps principal composé d'objets indirects. La version 1.5 a introduit les flux de références croisées optionnels , qui prennent la forme d'un objet flux standard, éventuellement avec des filtres appliqués. Un tel flux peut être utilisé à la place de la table de références croisées ASCII et contient les décalages et d'autres informations au format binaire. Ce format est flexible car il permet de spécifier une largeur entière (à l'aide d'un /Wtableau), de sorte que, par exemple, un document ne dépassant pas 64 Kio peut ne consacrer que 2 octets aux décalages d'objets. Pour assurer la rétrocompatibilité, un fichier PDF de référence hybride peut inclure à la fois des tableaux de références croisées traditionnels et des flux de références croisées, permettant aux anciens processeurs PDF de lire le fichier tout en profitant des nouvelles fonctionnalités introduites dans la version 1.5.
À la fin d'un fichier PDF se trouve un pied de page contenant
- Le
startxrefmot-clé suivi d'un décalage par rapport au début du tableau de références croisées (commençant par lexrefmot-clé) ou de l'objet de flux de références croisées, suivi de - Le marqueur
%%EOFde fin de fichier .
Si aucun flux de références croisées n'est utilisé, le pied de page est précédé du trailermot-clé suivi d'un dictionnaire contenant des informations qui seraient autrement contenues dans le dictionnaire de l'objet de flux de références croisées :
- Une référence à l'objet racine de la structure arborescente, également appelé catalogue (
/Root) - Le nombre d'objets indirects dans le tableau de renvoi (
/Size) - Autres informations facultatives
Chaque page contient un ou plusieurs flux de contenu décrivant le texte, les vecteurs et les images qui y sont dessinés. Le flux de contenu est organisé en piles , comme en PostScript.
Il existe deux formats de fichiers PDF : non linéarisé (non optimisé) et linéarisé (optimisé). Les fichiers PDF non linéarisés peuvent être plus petits que leurs homologues linéarisés, mais leur accès est plus lent car certaines données nécessaires à l’assemblage des pages du document sont dispersées dans le fichier. Les fichiers PDF linéarisés (également appelés fichiers PDF « optimisés » ou « optimisés pour le Web ») sont conçus pour être lus dans un module d’extension de navigateur Web sans attendre le téléchargement complet du fichier, car tous les objets nécessaires à l’affichage de la première page sont organisés de manière optimale au début du fichier. Les fichiers PDF peuvent être optimisés à l’aide des logiciels Adobe Acrobat ou QPDF .
Les dimensions des pages ne sont pas limitées par le format lui-même. Cependant, Adobe Acrobat impose une limite de 15 millions de pouces par 15 millions de pouces, soit 225 000 000 000 000 pouces carrés (145 161 km² ; 56 047 mi²).
Modèle d'imagerie
La conception de base de la représentation des graphiques dans le format PDF est très similaire à celle du PostScript, à l'exception de l'utilisation de la transparence, qui a été ajoutée dans la version PDF 1.4.
Les graphiques PDF utilisent un système de coordonnées cartésiennes indépendant du périphérique pour décrire la surface d'une page. La description d'une page PDF peut utiliser une matrice pour mettre à l'échelle , faire pivoter ou incliner les éléments graphiques. Un concept clé du PDF est celui d' état graphique , qui est un ensemble de paramètres graphiques pouvant être modifiés, enregistrés et restaurés par la description d'une page . Le format PDF possède (à partir de la version 2.0) 25 propriétés d'état graphique, dont voici quelques-unes des plus importantes :
- La matrice de transformation courante (CTM), qui détermine le système de coordonnées
- Le chemin de détourage
- L' espace colorimétrique
- La constante alpha , qui est un élément clé de la transparence
- Contrôle de compensation du point noir (introduit dans PDF 2.0)
Graphiques vectoriels
Comme en PostScript, les graphiques vectoriels en PDF sont construits à l'aide de tracés . Ces tracés sont généralement composés de lignes et de courbes de Bézier cubiques , mais peuvent également être construits à partir des contours du texte. Contrairement à PostScript, le format PDF n'autorise pas un même tracé combinant contours de texte, lignes et courbes. Les tracés peuvent être contourés, remplis, remplis puis contourés, ou utilisés pour le détourage . Les contours et les remplissages peuvent utiliser n'importe quelle couleur définie dans l'état graphique, y compris les motifs . Le format PDF prend en charge plusieurs types de motifs. Le plus simple est le motif de pavage, dans lequel une illustration est dessinée de manière répétée. Il peut s'agir d'un motif de pavage coloré , dont les couleurs sont spécifiées dans l'objet motif, ou d'un motif de pavage non coloré , auquel cas la spécification des couleurs est reportée au moment du dessin du motif. À partir de la version 1.3 du format PDF, un motif d'ombrage est également disponible ; il dessine des couleurs variant continuellement. Il existe sept types de motifs d'ombrage, dont les plus simples sont l' ombrage axial (type 2) et l'ombrage radial (type 3).
Images raster
Les images raster dans un PDF (appelées objets Image XObjects ) sont représentées par des dictionnaires associés à un flux. Le dictionnaire décrit les propriétés de l'image, et le flux contient les données de l'image. (Plus rarement, les petites images raster peuvent être intégrées directement dans la description de la page en tant qu'image en ligne .) Les images sont généralement filtrées à des fins de compression. Les filtres d'image pris en charge par le format PDF incluent les filtres d'usage général suivants :
- ASCII85Decode , un filtre utilisé pour convertir le flux en ASCII 7 bits,
- ASCIIHexDecode , similaire à ASCII85Decode mais moins compact,
- FlateDecode , un filtre couramment utilisé basé sur l' algorithme deflate défini dans la RFC 1951 (deflate est également utilisé dans les formats de fichiers gzip , PNG et zip , entre autres) ; introduit dans PDF 1.2 ; il peut utiliser l'un des deux groupes de fonctions de prédiction pour une compression zlib/deflate plus compacte : Predictor 2 de la spécification TIFF 6.0 et les prédicteurs (filtres) de la spécification PNG ( RFC 2083 ),
- LZWDecode est un filtre basé sur la compression LZW ; il peut utiliser l’un des deux groupes de fonctions de prédiction pour une compression LZW plus compacte : le prédicteur 2 de la spécification TIFF 6.0 et les prédicteurs (filtres) de la spécification PNG.
- RunLengthDecode , une méthode de compression simple pour les flux de données répétitives utilisant l' algorithme de codage par plage et les filtres spécifiques à l'image,
- DCTDecode , un filtre avec perte basé sur la norme JPEG ,
- CCITTFaxDecode , un filtre binaire (noir/blanc) sans perte basé sur la norme de compression de télécopie CCITT (UIT-T) du groupe 3 ou du groupe 4 définie dans les normes UIT-T T.4 et T.6,
- JBIG2Decode , un filtre binaire (noir/blanc) avec ou sans perte basé sur la norme JBIG2 , introduit dans PDF 1.4, et
- JPXDecode , un filtre avec ou sans perte basé sur la norme JPEG 2000 , introduit dans PDF 1.5.
Normalement, tout le contenu image d'un PDF est intégré au fichier. Cependant, le format PDF autorise le stockage des données image dans des fichiers externes grâce aux flux externes ou aux images alternatives . Les sous-ensembles normalisés de PDF, tels que PDF/A et PDF/X , interdisent ces fonctionnalités.
Texte
Dans un PDF, le texte est représenté par des éléments de texte dans les flux de contenu de la page. Un élément de texte spécifie les caractères à afficher à des positions précises. Ces caractères sont définis à l'aide de l' encodage d'une police de caractères sélectionnée .
Un objet police dans un PDF est la description d'une police de caractères numérique . Il peut décrire les caractéristiques de la police ou inclure un fichier de police incorporé . Dans ce dernier cas, on parle de police incorporée, et dans le premier cas, de police non incorporée . Les fichiers de police pouvant être incorporés sont basés sur les formats de polices numériques standard les plus répandus : Type 1 (et sa variante compressée CFF), TrueType et, depuis la version 1.6 du PDF, OpenType . Le format PDF prend également en charge la variante Type 3, dans laquelle les composants de la police sont décrits par des opérateurs graphiques PDF.
Quatorze polices de caractères, connues sous le nom de polices standard 14 ou polices de base , ont une importance particulière dans les documents PDF :
- Times (v3) (en caractères normaux, italiques, gras et gras italiques)
- Courrier (en caractères réguliers, obliques, gras et obliques gras)
- Helvetica (v3) (en caractères réguliers, obliques, gras et gras obliques)
- Symbole
- Zapf Dingbats
Ces polices, ou des polices de substitution appropriées ayant les mêmes métriques, devraient être disponibles dans la plupart des lecteurs PDF, mais leur présence n'est pas garantie et elles ne s'afficheront correctement que si elles sont installées sur le système. Il est possible de remplacer les polices si elles ne sont pas incorporées dans un PDF.
Dans les chaînes de texte, les caractères sont affichés à l'aide de codes (entiers) qui correspondent à des glyphes de la police courante grâce à un encodage . Il existe plusieurs encodages prédéfinis, notamment WinAnsi , MacRoman et de nombreux encodages pour les langues d'Asie de l'Est. Une police peut également avoir son propre encodage intégré. (Bien que les encodages WinAnsi et MacRoman soient dérivés des propriétés historiques des systèmes d'exploitation Windows et Macintosh , les polices utilisant ces encodages fonctionnent aussi bien sur n'importe quelle plateforme.) Le format PDF peut spécifier un encodage prédéfini, l'encodage intégré de la police ou fournir une table de correspondance avec un encodage prédéfini ou intégré (déconseillé avec les polices TrueType). Les mécanismes d'encodage du format PDF ont été conçus pour les polices de type 1, et les règles d'application aux polices TrueType sont complexes.
Pour les polices de grande taille ou celles comportant des glyphes non standard, les encodages spéciaux Identity-H (pour l'écriture horizontale) et Identity-V (pour l'écriture verticale) sont utilisés. Avec ces polices, il est nécessaire de fournir une table ToUnicode afin de préserver les informations sémantiques relatives aux caractères.
Un document texte numérisé au format PDF sans que le texte soit reconnu par reconnaissance optique de caractères (OCR) est une image, sans polices ni propriétés de texte.
Transparence
Le modèle d'image original du PDF était opaque , comme le PostScript : chaque objet dessiné sur la page remplaçait complètement tout élément précédemment marqué au même emplacement. Dans la version 1.4 du PDF, ce modèle a été étendu pour permettre la transparence. En cas de transparence, les nouveaux objets interagissent avec les objets précédemment marqués, créant ainsi des effets de fusion. L'ajout de la transparence au PDF s'est fait au moyen de nouvelles extensions conçues pour être ignorées par les produits écrits selon les spécifications PDF 1.3 et antérieures. Par conséquent, les fichiers utilisant une faible transparence peuvent être affichés correctement par les visionneuses anciennes, tandis que ceux utilisant une transparence importante peuvent être affichés incorrectement.
Les extensions de transparence reposent sur les concepts clés de groupes de transparence , de modes de fusion , de forme et d'alpha . Le modèle est étroitement aligné sur les fonctionnalités d' Adobe Illustrator version 9. Les modes de fusion étaient basés sur ceux utilisés par Adobe Photoshop à l'époque. Lors de la publication de la spécification PDF 1.4, les formules de calcul des modes de fusion ont été gardées secrètes par Adobe. Elles ont depuis été publiées.
Le concept de groupe de transparence dans la spécification PDF est indépendant des notions existantes de « groupe » ou de « calque » dans des applications telles qu’Adobe Illustrator. Ces regroupements reflètent des relations logiques entre les objets, pertinentes lors de leur édition, mais ils ne font pas partie du modèle d’image.
Fonctionnalités supplémentaires
Structure logique et accessibilité
Un PDF balisé (voir la clause 14.8 de la norme ISO 32000) inclut des informations sur la structure et la sémantique du document afin de permettre une extraction de texte fiable et une meilleure accessibilité . Techniquement, le PDF balisé est une utilisation stylisée du format qui s'appuie sur le cadre de structure logique introduit dans la norme PDF 1.3. Le PDF balisé définit un ensemble de types de structures et d'attributs standard qui permettent d'extraire et de réutiliser le contenu de la page (texte, graphiques et images) à d'autres fins.
Le balisage PDF n'est pas requis lorsque le fichier PDF est destiné uniquement à l'impression. Cette fonctionnalité étant optionnelle et les règles relatives au balisage PDF étant relativement vagues dans la norme ISO 32000-1, la prise en charge de ce format par les appareils de lecture, y compris les technologies d'assistance , reste inégale en 2021. La norme ISO 32000-2, en revanche, propose une description plus détaillée du balisage PDF, ce qui devrait favoriser son adoption.
Un sous-ensemble normalisé ISO du format PDF spécifiquement destiné à l'accessibilité, PDF/UA , a été publié pour la première fois en 2012.
Groupes de contenu optionnels (calques)
L'introduction du format PDF 1.5 (2003) a introduit le concept de calques. Les calques, plus formellement appelés groupes de contenu optionnels (OCG), désignent des sections de contenu d'un document PDF qui peuvent être affichées ou masquées de manière sélective par les auteurs ou les lecteurs. Cette fonctionnalité est utile pour les dessins CAO, les illustrations composées de calques, les cartes, les documents multilingues, etc.
Il s'agit essentiellement d'un dictionnaire de propriétés de contenu optionnel ajouté à la racine du document. Ce dictionnaire contient un tableau de groupes de contenu optionnel (OCG), chacun décrivant un ensemble d'informations et pouvant être affiché ou masqué individuellement, ainsi qu'un ensemble de dictionnaires de configuration de contenu optionnel, qui indiquent l'état (affiché ou masqué) des OCG concernés.
Chiffrement et signatures
Un fichier PDF peut être chiffré pour des raisons de sécurité ; dans ce cas, un mot de passe est requis pour consulter ou modifier son contenu. La norme PDF 2.0 définit le chiffrement AES 256 bits . La documentation de référence PDF décrit également comment des tiers peuvent définir leurs propres systèmes de chiffrement pour les fichiers PDF.
Les fichiers PDF peuvent être signés numériquement, afin de fournir une authentification sécurisée ; des informations complètes sur la mise en œuvre des signatures numériques dans les fichiers PDF sont fournies dans la norme ISO 32000-2.
Les fichiers PDF peuvent également contenir des restrictions DRM intégrées qui offrent des contrôles supplémentaires limitant la copie, la modification ou l'impression. Ces restrictions dépendent du logiciel de lecture pour être respectées ; leur sécurité est donc limitée.
La sécurité standard offerte par le format PDF repose sur deux méthodes et deux mots de passe distincts : un mot de passe utilisateur , qui chiffre le fichier et empêche son ouverture, et un mot de passe propriétaire , qui définit les opérations à restreindre même après le déchiffrement du document. Ces opérations peuvent inclure la modification, l’impression ou la copie de texte et de graphiques, ainsi que l’ajout ou la modification de notes et de champs AcroForm . Le mot de passe utilisateur chiffre le fichier, contrairement au mot de passe propriétaire, dont le respect des restrictions dépend du logiciel client. Ce dernier peut être facilement supprimé par un logiciel, y compris certains services en ligne gratuits. Par conséquent, les restrictions d’utilisation qu’un auteur applique à un document PDF ne sont pas sécurisées et ne peuvent être garanties une fois le fichier distribué. Cet avertissement s’affiche lors de l’application de telles restrictions à l’aide d’Adobe Acrobat pour créer ou modifier des fichiers PDF.
Même sans supprimer le mot de passe, la plupart des lecteurs PDF gratuits ou open source ignorent les « protections » d’autorisation et permettent à l’utilisateur d’imprimer ou de copier des extraits du texte comme si le document n’était pas protégé par un mot de passe.
À partir de la version 1.5 du format PDF, les signatures de droits d'utilisation (UR) permettent d'activer des fonctionnalités interactives supplémentaires qui ne sont pas disponibles par défaut dans une application de visualisation PDF donnée. La signature sert à valider que les autorisations ont été accordées par une autorité compétente . Par exemple, elle peut être utilisée pour autoriser un utilisateur :
- Pour enregistrer le document PDF avec un formulaire modifié ou des données d'annotation
- Importer des fichiers de données de formulaire aux formats FDF, XFDF et texte (CSV/TSV).
- Exporter les fichiers de données de formulaire aux formats FDF et XFDF
- Soumettre les données du formulaire
- Instancier de nouvelles pages à partir de modèles de pages nommés
- Appliquer une signature numérique à un champ de formulaire de signature numérique existant
- Créer, supprimer, modifier, copier, importer et exporter des annotations
Par exemple, Adobe Systems accorde des autorisations pour activer des fonctionnalités supplémentaires dans Adobe Reader, en utilisant la cryptographie à clé publique . Adobe Reader vérifie que la signature utilise un certificat provenant d'une autorité de certification autorisée par Adobe. Toute application PDF peut utiliser ce même mécanisme à ses propres fins.
Dans certaines circonstances, notamment lorsque les systèmes du destinataire ne sont pas mis à jour , les informations que le destinataire d'un document signé numériquement voit peuvent être manipulées par l'expéditeur après que le document a été signé par le signataire.
PAdES ( PDF Advanced Electronic Signatures ) est un ensemble de restrictions et d'extensions apportées au format PDF et à la norme ISO 32000-1 , le rendant adapté aux signatures électroniques avancées . Il est publié par l'ETSI sous la référence TS 102 778.
Pièces jointes
Les fichiers PDF peuvent contenir des pièces jointes auxquelles les processeurs peuvent accéder et qu'ils peuvent ouvrir ou enregistrer sur un système de fichiers local.
Les fichiers PDF peuvent contenir deux types de métadonnées. Le premier est le dictionnaire d'informations du document (DID), un ensemble de champs clé/valeur tels que l'auteur, le titre, le sujet, les dates de création et de mise à jour. Ce dictionnaire est facultatif et est référencé par une Infoclé située dans la fin du fichier. Un petit ensemble de champs est défini et peut être étendu avec des valeurs textuelles supplémentaires si nécessaire. Cette méthode est obsolète dans PDF 2.0.
Dans PDF 1.4, la prise en charge des flux de métadonnées a été ajoutée, grâce à la plateforme de métadonnées extensibles (XMP) permettant d'intégrer des métadonnées extensibles basées sur les normes XML, comme dans d'autres formats de fichiers. PDF 2.0 permet d'associer des métadonnées à n'importe quel objet du document, telles que des informations sur les illustrations, les polices et les images incorporées, ainsi qu'au document entier (en l'associant au catalogue de documents), à l'aide d'un schéma extensible.
Les documents PDF peuvent également contenir des paramètres d'affichage, notamment la mise en page et le niveau de zoom, dans un objet Préférences du visualiseur. Adobe Reader utilise ces paramètres pour remplacer les paramètres par défaut de l'utilisateur lors de l'ouverture du document. La version gratuite d'Adobe Reader ne permet pas de supprimer ces paramètres.
Accessibilité
Les fichiers PDF peuvent être créés spécifiquement pour être accessibles aux personnes handicapées. Les formats de fichiers PDF utilisés en 2014 peuvent inclure des balises, des équivalents textuels, des légendes, des descriptions audio, etc. Certains logiciels peuvent générer automatiquement des PDF balisés , mais cette fonctionnalité n'est pas toujours activée par défaut. Les principaux lecteurs d'écran , tels que JAWS , Window-Eyes , Hal, et Kurzweil 1000 et 3000, peuvent lire les PDF balisés. De plus, les PDF balisés peuvent être redimensionnés et agrandis pour les lecteurs malvoyants. L'ajout de balises aux anciens PDF et à ceux générés à partir de documents numérisés peut présenter certaines difficultés.
L'un des principaux défis liés à l'accessibilité des fichiers PDF réside dans le fait que ces documents présentent trois modes d'affichage distincts, qui peuvent être incohérents selon leur mode de création. Ces trois modes sont : (i) l'affichage physique, (ii) l'affichage par balises et (iii) l'affichage du contenu. L'affichage physique est celui qui est affiché et imprimé (ce que la plupart des gens considèrent comme un document PDF). L'affichage par balises est utilisé par les lecteurs d'écran et autres technologies d'assistance pour offrir une navigation et une expérience de lecture optimales aux personnes en situation de handicap. L'affichage du contenu est basé sur l'ordre physique des objets au sein du flux de contenu du PDF et peut être affiché par des logiciels ne prenant pas entièrement en charge l'affichage par balises, comme la fonction de réorganisation du texte d'Adobe Reader.
PDF/UA , la norme internationale pour l’accessibilité des PDF basée sur la norme ISO 32000-1, a été initialement publiée sous la référence ISO 14289-1 en 2012 et établit un langage normatif pour la technologie PDF accessible. PDF/UA traite de l’accessibilité du format PDF et reprend les principes des WCAG 2.0 afin d’établir des règles d’accessibilité spécifiques aux PDF.
Multimédia
Un PDF multimédia est un fichier PDF contenant du contenu interactif, intégré ou lié au sein du fichier. Il peut inclure des images, du contenu audio ou vidéo, ainsi que des boutons. Par exemple, dans un catalogue numérique pour un site de commerce électronique, les produits peuvent être listés sur les pages et agrémentés d'images, de liens vers le site web et de boutons permettant de commander directement depuis le document.
Formulaires
Les formulaires interactifs sont un mécanisme permettant d'ajouter des formulaires au format de fichier PDF. Le format PDF prend actuellement en charge deux méthodes différentes pour l'intégration des données et des formulaires PDF. Ces deux formats coexistent aujourd'hui dans la spécification PDF :
- Les AcroForms (également connus sous le nom de formulaires Acrobat) ont été introduits dans la spécification du format PDF 1.2 et inclus dans toutes les spécifications PDF ultérieures.
- Les formulaires XFA ( XML Forms Architecture ), introduits dans la spécification du format PDF 1.5, ne sont pas compatibles avec AcroForms. L'architecture XFA a été dépréciée dans PDF à partir de la version PDF 2.0.
Les AcroForms ont été introduits dans le format PDF 1.2. Ils permettent l'utilisation d'objets ( zones de texte , boutons radio , etc. ) et de code ( JavaScript, par exemple ). Outre les actions PDF standard, les formulaires interactifs (AcroForms) prennent en charge la soumission, la réinitialisation et l'importation de données. L'action « submit » transmet les noms et les valeurs des champs de formulaire interactifs sélectionnés à une URL spécifiée. Les noms et les valeurs des champs de formulaire interactifs peuvent être soumis dans l'un des formats suivants (selon les paramètres des options ExportFormat, SubmitPDF et XFDF de l'action) :
- Format de formulaire HTML
- Spécification HTML 4.01 depuis PDF 1.5 ; HTML 2.0 depuis la version 1.2
- Format de données de formulaire (FDF)
- Basé sur le format PDF, le format FDF utilise la même syntaxe et possède une structure de fichier similaire, mais il est beaucoup plus simple car le corps d'un document FDF ne contient qu'un seul objet obligatoire. Le format FDF est défini dans la spécification PDF (depuis la version 1.2). Il peut être utilisé pour soumettre des données de formulaire à un serveur, recevoir la réponse et l'intégrer au formulaire interactif. Il permet également d'exporter les données de formulaire vers des fichiers autonomes, qui peuvent ensuite être importés dans le formulaire interactif PDF correspondant. Le format FDF a été initialement défini en 1996 dans le cadre de la norme ISO 32000-2:2017.
- Format de données des formulaires XML (XFDF)
- (Spécification externe du format de données XML pour formulaires, version 2.0 ; prise en charge depuis PDF 1.5 ; elle a remplacé le format de soumission de formulaire « XML » défini dans PDF 1.4) XFDF est la version XML du format de données pour formulaires (FDF), mais n’implémente qu’un sous-ensemble de FDF contenant les formulaires et les annotations. Certaines entrées du dictionnaire FDF n’ont pas d’équivalent XFDF, telles que Status, Encoding, JavaScript, les clés de page, EmbeddedFDF, Differences et Target. De plus, XFDF ne permet pas la création ou l’ajout de nouvelles pages à partir des données fournies, contrairement à ce qui est possible avec un fichier FDF. La spécification XFDF est référencée (mais non incluse) dans la spécification PDF 1.5 (et les versions ultérieures). Elle est décrite séparément dans la spécification du format de données XML pour formulaires . La spécification PDF 1.4 autorisait la soumission de formulaires au format XML, mais ce format a été remplacé par le format XFDF dans la spécification PDF 1.5. XFDF est conforme à la norme XML. Le format XFDF peut être utilisé de la même manière que le format FDF : par exemple, les données d’un formulaire sont soumises à un serveur, modifiées, puis renvoyées et les nouvelles données sont importées dans un formulaire interactif. Il peut également servir à exporter les données d’un formulaire vers des fichiers autonomes, lesquels peuvent être réimportés dans le formulaire PDF interactif correspondant. Depuis août 2019, XFDF 3.0 est une norme ISO/CEI, officiellement nommée ISO 19444-1:2019 – Gestion de documents – Format de données de formulaires XML – Partie 1 : Utilisation de la norme ISO 32000-2 (XFDF 3.0) . Cette norme constitue une référence normative de la norme ISO 32000-2.
Il est possible de soumettre le document dans son intégralité plutôt que des champs et des valeurs individuels, comme cela était défini dans la norme PDF 1.4.
AcroForms peut conserver les valeurs des champs de formulaire dans des fichiers externes autonomes contenant des paires clé-valeur. Ces fichiers externes peuvent utiliser les formats FDF (Forms Data Format) et XFDF (XML Forms Data Format). Les signatures des droits d'utilisation (UR) définissent les droits d'importation des fichiers de données de formulaire aux formats FDF, XFDF et texte ( CSV / TSV ), ainsi que d'exportation des fichiers de données de formulaire aux formats FDF et XFDF.
Dans la version 1.5 du PDF, Adobe Systems a introduit un format propriétaire pour les formulaires : Adobe XML Forms Architecture (XFA). Les formulaires Adobe XFA ne sont pas compatibles avec la fonctionnalité AcroForms de la norme ISO 32000, et la plupart des logiciels de traitement PDF ne prennent pas en charge le contenu XFA. La spécification XFA est référencée dans la norme ISO 32000-1/PDF 1.7 comme une spécification propriétaire externe et a été entièrement abandonnée dans le format PDF avec la norme ISO 32000-2 (PDF 2.0).
Licence
N’importe qui peut créer des applications capables de lire et d’écrire des fichiers PDF sans avoir à verser de redevances à Adobe Systems. Adobe détient des brevets sur le format PDF, mais les concède sous licence pour une utilisation gratuite dans le développement de logiciels conformes à sa spécification PDF.
Sécurité
Modifications du contenu
En novembre 2019, des chercheurs de l'Université de la Ruhr à Bochum et de Hackmanit GmbH ont publié des attaques contre des fichiers PDF signés numériquement. Ils ont démontré comment modifier le contenu visible d'un PDF signé sans invalider la signature dans 21 des 22 visionneuses PDF de bureau et dans 6 des 8 services de validation en ligne, en exploitant des failles d'implémentation. Lors de la même conférence, ils ont également montré comment exfiltrer le texte clair du contenu chiffré des PDF. En 2021, ils ont présenté de nouvelles attaques dites « shadow » contre les PDF, tirant parti de la flexibilité des fonctionnalités offertes par la spécification. Jens Müller a présenté un aperçu des problèmes de sécurité liés aux PDF, notamment les attaques par déni de service , la divulgation d'informations , la manipulation de données et l'exécution de code arbitraire .
vulnérabilité des logiciels malveillants
Certains lecteurs PDF populaires présentent des failles de sécurité connues, permettant à des fichiers PDF infectés par des virus, des chevaux de Troie et autres logiciels malveillants de causer des dommages. Ces fichiers PDF peuvent contenir du code JavaScript caché susceptible d'exploiter des vulnérabilités du lecteur PDF, des objets cachés exécutés à l'ouverture du fichier qui les dissimule et, plus rarement, un PDF malveillant peut lancer un logiciel malveillant.
Les premières pièces jointes PDF contenant des virus ont été découvertes en 2001. Le virus, nommé OUTLOOK.PDFWorm ou Peachy , utilise Microsoft Outlook pour s'envoyer sous forme de fichier PDF joint. Il était activé avec Adobe Acrobat, mais pas avec Acrobat Reader.
Au fil des ans, plusieurs vulnérabilités ont été découvertes dans différentes versions d'Adobe Reader , ce qui a incité l'entreprise à publier des correctifs de sécurité. Des vulnérabilités ont également été découvertes dans d'autres lecteurs PDF. Un facteur aggravant est qu'un lecteur PDF peut être configuré pour démarrer automatiquement lorsqu'une page Web contient un fichier PDF intégré, offrant ainsi une porte d'entrée pour les attaques. Si une page Web malveillante contient un fichier PDF infecté exploitant une vulnérabilité du lecteur PDF, le système peut être compromis même si le navigateur est sécurisé. Certaines de ces vulnérabilités résultent de lecteurs PDF mal conçus qui gèrent incorrectement le JavaScript intégré au fichier PDF. Désactiver l'exécution de JavaScript dans le lecteur PDF peut contribuer à atténuer de telles exploitations futures, bien que cela ne protège pas contre les exploitations dans d'autres parties du logiciel de visualisation de PDF. Certains experts en sécurité affirment que JavaScript n'est pas essentiel pour un lecteur PDF et que le gain de sécurité lié à sa désactivation compense les éventuels problèmes de compatibilité . Une façon d'éviter les exploitations de fichiers PDF consiste à utiliser un service local ou Web pour convertir les fichiers dans un autre format avant de les visualiser.
Le 30 mars 2010, le chercheur en sécurité Didier Stevens a signalé une faille dans Adobe Reader et Foxit Reader qui exécute un fichier exécutable malveillant si l'utilisateur l'autorise à être lancé lorsqu'il le demande.
Bombe Zip
Les flux PDF peuvent contenir des filtres imbriqués, ce qui permet de créer un fichier de 5 kilo-octets qui, une fois décompressé, occupe 1 pétaoctet en RAM. Cette vulnérabilité peut être exploitée pour provoquer un déni de service avec les implémentations qui ne s'en protègent pas, comme ce fut le cas avec la CVE-2025-55197 de pypdf .
Logiciel
Les téléspectateurs et les rédacteurs
De nombreuses visionneuses de PDF sont disponibles gratuitement auprès de diverses sources. Des logiciels permettant de manipuler et de modifier les fichiers PDF sont disponibles, généralement payants. De plus, la plupart des navigateurs web modernes, notamment Chrome , Firefox et Safari , intègrent des fonctionnalités de visualisation de PDF, remplaçant ainsi les extensions de navigateur qui étaient auparavant conçues à cet effet.
De nombreux logiciels permettent de créer des PDF, notamment les fonctionnalités d'impression PDF intégrées à macOS , iOS [ et la plupart des distributions Linux . La plupart des logiciels de traitement de texte, tels que 82 ] , WordPerfect 9 et exporter des documents au format PDF. De nombreux pilotes d'impression PDF sont disponibles pour Microsoft Windows, le système de composition pdfTeX , les outils PDF DocBook , les applications développées autour de Ghostscript et Adobe Acrobat , ainsi qu'Adobe InDesign , Adobe FrameMaker , Adobe Illustrator et Adobe Photoshop. Ces logiciels permettent de configurer une « imprimante PDF », qui, une fois sélectionnée, envoie le document au format PDF plutôt que sur une imprimante physique. La suite bureautique en ligne de Google , Google Docs, permet d'importer et d'enregistrer des documents au format PDF. Certaines applications web proposent des outils gratuits d'édition et d'annotation de PDF.
La Free Software Foundation développait un ensemble de bibliothèques et de programmes libres, de haute qualité et entièrement fonctionnels, implémentant le format de fichier PDF et les technologies associées conformément à la norme ISO 32000, parmi ses projets prioritaires . Cependant, en 2011, le projet GNU PDF a été retiré de la liste des projets prioritaires en raison de la maturité de la bibliothèque Poppler , qui est désormais largement utilisée dans des applications telles qu'Evince avec l' environnement de bureau GNOME . Poppler est basée sur le code source de Xpdf . Des bibliothèques de développement commerciales sont également disponibles, comme indiqué dans la Liste des logiciels PDF .
Le projet Apache PDFBox de la Fondation Apache Software est une bibliothèque Java open source, sous licence Apache , permettant de travailler avec des documents PDF.
Impression
Les processeurs d'images raster (RIP) sont utilisés pour convertir les fichiers PDF en un format raster adapté à l'impression sur papier et autres supports, dans les imprimantes, les presses numériques et en prépresse, selon un processus appelé rastérisation . Parmi les RIP capables de traiter directement les PDF, on trouve Adobe PDF Print Engine d'Adobe Systems, Jaws et Harlequin RIP de Global Graphics .
En 1993, le processeur d'images raster Jaws de Global Graphics est devenu le premier RIP prépresse commercialisé capable d'interpréter nativement les fichiers PDF sans conversion vers un autre format. La société a publié une mise à jour de son RIP Harlequin dotée de la même fonctionnalité en 1997.
Agfa-Gevaert a lancé et commercialisé Apogee, le premier système de flux de travail prépresse basé sur le format PDF, en 1997.
De nombreux imprimeurs offset commerciaux acceptent désormais les fichiers PDF prêts pour l'impression comme source d'impression, notamment le format PDF/X-1a et ses variantes. L'envoi de fichiers PDF prêts pour l'impression remplace la nécessité, parfois problématique, de recevoir les fichiers de travail natifs.
En 2006, le format PDF a été largement adopté comme format standard pour les travaux d'impression lors du sommet sur l'impression des laboratoires de développement open source . Il est pris en charge comme format d'impression par le système d'impression Unix commun et des applications de bureau telles que GNOME, KDE , Firefox , Thunderbird , LibreOffice et OpenOffice utilisent désormais le format PDF pour l'impression.
Certaines imprimantes de bureau prennent également en charge l'impression directe de fichiers PDF, ce qui leur permet d'interpréter les données PDF sans aide extérieure.
Modèle d'affichage natif
Le format PDF a été choisi comme format de métadonnées « natif » pour macOS (initialement appelé Mac OS X), remplaçant le format PICT de l’ancien Mac OS classique . Le modèle d’image de la couche graphique Quartz est basé sur le modèle commun à Display PostScript et PDF, d’où le surnom de « PDF d’affichage » . L’ application Aperçu peut afficher les fichiers PDF, tout comme la version 2.0 et les versions ultérieures du navigateur web Safari . La prise en charge du format PDF au niveau système permet aux applications macOS de créer automatiquement des documents PDF, à condition qu’elles prennent en charge l’architecture d’impression standard du système d’exploitation. Les fichiers sont ensuite exportés au format PDF 1.3, conformément à l’en-tête du fichier. Lors de la prise d’une capture d’écran sous Mac OS X versions 10.0 à 10.3, l’image était également enregistrée au format PDF ; les versions ultérieures enregistrent les captures d’écran au format PNG, mais ce comportement peut être rétabli au format PDF si nécessaire.
Annotation
Adobe Acrobat est un exemple de logiciel propriétaire permettant d'annoter, de surligner et d'ajouter des notes à des fichiers PDF existants. PDFedit est une application UNIX disponible gratuitement (sous licence GNU GPL ) . Foxit Reader , logiciel gratuit disponible pour Microsoft Windows, macOS et Linux, permet d'annoter des documents. La version gratuite de PDF-XChange Viewer de Tracker Software offre des annotations et des marques sans restriction . Aperçu, la visionneuse PDF intégrée à macOS , permet également d'annoter, tout comme le logiciel libre Skim , ce dernier prenant en charge l'interaction avec LaTeX , SyncTeX et PDFSync et l'intégration avec le logiciel de gestion bibliographique BibDesk . Qiqqa, logiciel gratuit, génère un rapport d'annotations récapitulant toutes les annotations et notes effectuées dans une bibliothèque de PDF. L'outil de vérification de texte exporte les différences entre les documents sous forme d'annotations et de marques.
Il existe également des systèmes d'annotation web qui prennent en charge l'annotation des fichiers PDF et autres formats de documents. Lorsque les fichiers PDF doivent offrir toutes les fonctionnalités des documents papier, l'annotation manuscrite est nécessaire.
Conversion et extraction d'informations
L'accent mis par le format PDF sur la préservation de l'apparence visuelle des documents sur différentes plateformes logicielles et matérielles complexifie la conversion des documents PDF vers d'autres formats de fichiers et l' extraction ciblée d'informations telles que le texte, les images, les tableaux, les informations bibliographiques et les métadonnées . De nombreux outils et bibliothèques de code source facilitent ces tâches. Plusieurs jeux de données étiquetés existent pour tester les outils de conversion PDF et d'extraction d'informations ; ils ont été utilisés pour évaluer leurs performances.
Alternatives
La spécification Open XML Paper est un format concurrent utilisé à la fois comme langage de description de page et comme format natif du spouleur d'impression pour Microsoft Windows depuis Windows Vista .
L'architecture de contenu de document à objets mixtes (MO :DCA-P) est un format concurrent. MO:DCA-P fait partie de la présentation de fonctions avancées .