Revue de Ghostscript : fonctionnalités, installation et avantages
Ghostscript est un logiciel open source spécialisé dans l’interprétation et le traitement des documents PostScript et PDF. Il associe une couche d’interprétation PostScript à une bibliothèque graphique, ce qui lui permet notamment de convertir, rasteriser, générer et traiter différents types de documents. Le projet est développé depuis plus de 30 ans et fonctionne sur de nombreux systèmes d’exploitation.
Ghostscript s’adresse particulièrement aux développeurs, aux administrateurs système, aux spécialistes IT et aux entreprises qui ont besoin d’automatiser des opérations documentaires sans dépendre exclusivement d'une interface graphique. Il peut être utilisé directement depuis la ligne de commande ou intégré à une application comme bibliothèque ou SDK.
Quels problèmes Ghostscript résout-il ?
Le traitement automatisé des documents PDF et PostScript peut devenir complexe lorsqu'il faut convertir de nombreux fichiers, produire des images à partir de documents, contrôler la résolution ou générer différents formats de sortie.
Ghostscript fournit un moteur capable de traiter ces opérations depuis la ligne de commande et dans des applications. Sa conception autour d'interpréteurs et de périphériques de sortie permet notamment de transformer le contenu d'un document en PDF, PostScript, EPS, images, texte, XPS ou certains formats liés à l'impression.
Il peut donc répondre à des besoins tels que :
- automatiser la conversion de documents dans un script ;
- rasteriser des fichiers PDF ou PostScript ;
- produire des images PNG ou JPEG à partir de pages de documents ;
- convertir certains contenus vers PDF ou PostScript ;
- contrôler la résolution et certains paramètres de compression ;
- générer des documents PDF/A ou PDF/X dans les limites prises en charge ;
- intégrer un moteur de traitement documentaire dans une application ;
- analyser ou transformer des documents dans des chaînes de production automatisées.
Ghostscript est particulièrement intéressant lorsqu'un serveur doit effectuer des traitements répétitifs sans intervention manuelle. Il peut alors s'inscrire dans une approche de Service open source dédiée aux traitements documentaires automatisés.
Fonctionnalités et capacités clés
Interprétation PDF et PostScript
Ghostscript est conçu pour interpréter le langage PostScript et les fichiers PDF. La documentation officielle indique également que Ghostscript intègre le nouvel interpréteur PDF écrit en C, tandis que le projet GhostPDF existe également sous forme d'exécutable PDF autonome.
Pour les équipes techniques, cela signifie que Ghostscript peut servir de moteur de traitement documentaire plutôt que de simple lecteur de fichiers. Son développement s'inscrit également dans une communauté open source qui contribue à son évolution.
Conversion et génération de formats
Les périphériques de sortie de Ghostscript constituent l'un de ses principaux atouts. La documentation officielle recense notamment les périphériques pdfwrite, ps2write, eps2write, txtwrite, xpswrite, pxlmono, pxlcolor et docxwrite.
Le tableau suivant résume plusieurs possibilités documentées :
| Fonction | Ghostscript |
|---|---|
| Lecture PDF | Oui |
| Interprétation PostScript | Oui |
| Génération PDF | Oui |
| Génération PostScript | Oui |
| Génération EPS | Oui |
| Sortie texte | Oui |
| Sortie XPS | Oui |
| Rasterisation en images | Oui |
| Génération PDF/X | Oui, selon les formats pris en charge |
| Génération PDF/A | Oui, versions 1 à 3, niveau de conformité B |
| Utilisation en ligne de commande | Oui |
| Intégration dans une application | Oui |
Les formats et capacités exacts dépendent du périphérique sélectionné et de la configuration utilisée. Il faut donc consulter la documentation correspondant à la version déployée avant de construire une chaîne de production.
Rasterisation et génération d'images
Ghostscript peut rasteriser des documents PostScript et PDF vers différents formats d'image. Les périphériques disponibles comprennent notamment plusieurs variantes PNG et JPEG, avec des paramètres permettant de contrôler la résolution.
Par exemple, la documentation fournit une syntaxe de ce type pour générer des fichiers PNG à partir d'un document :
gs -sOutputFile=doc-%02d.png -sDEVICE=png16m -r300 document.pdfLa valeur 300 correspond ici à la résolution en DPI. Le nom de sortie peut également utiliser un modèle comportant le numéro de page.
Cette fonction est utile pour créer automatiquement des aperçus, préparer des images pour une application ou alimenter un processus de traitement d'image.
Contrôle de la sortie PDF
Le périphérique pdfwrite offre de nombreux paramètres pour contrôler la génération PDF. Ghostscript documente notamment plusieurs préréglages PDFSETTINGS, comme /screen, /ebook, /printer et /prepress.
Il faut toutefois éviter de considérer ces préréglages comme une solution universelle d'optimisation. Le résultat dépend du document source et des paramètres utilisés. Pour une chaîne de production professionnelle, les fichiers générés doivent être contrôlés après conversion.
PDF/A et PDF/X
Ghostscript permet également de produire certains documents conformes à des standards destinés notamment à l'archivage et à l'impression professionnelle.
La documentation indique que Ghostscript prend en charge la création de PDF/A versions 1 à 3 avec un niveau de conformité B. Elle documente également la création de PDF/X, avec des restrictions précises sur les versions supportées.
Cette capacité peut être intéressante dans les environnements où les documents doivent respecter des contraintes précises de production ou d'archivage. Elle peut également répondre aux besoins d'un projet open source qui nécessite un moteur de traitement documentaire configurable et automatisable.
Sécurité et traitement de fichiers non fiables
La sécurité constitue un point important lorsqu'un serveur traite automatiquement des PDF ou des fichiers PostScript provenant d'utilisateurs ou de sources externes.
Ghostscript utilise le mode SAFER par défaut depuis la version 9.50. Ce mécanisme impose des contrôles sur l'accès aux fichiers, certains périphériques et certains paramètres.
La documentation précise également que l'option -dNOSAFER désactive temporairement certaines protections et doit être utilisée avec prudence.
Pour une infrastructure de production, il est donc recommandé de :
- maintenir Ghostscript à jour ;
- télécharger les versions depuis les sources officielles ;
- limiter les permissions du processus ;
- isoler si nécessaire le traitement des documents non fiables ;
- éviter de désactiver les mécanismes de sécurité sans raison précise ;
- tester les fichiers générés et les entrées dans un environnement contrôlé ;
- consulter les avis de sécurité et les notes de version avant chaque mise à niveau importante.
Le site officiel maintient une section consacrée aux CVE et aux correctifs associés aux versions publiées.
Comment installer Ghostscript ?
Installation sous Windows
Ghostscript est distribué sous Windows sous la forme d'un installateur binaire. La documentation officielle recommande d'exécuter l'installateur téléchargé depuis la page des versions.
La procédure générale est la suivante :
- Ouvrir la page officielle des versions de Ghostscript.
- Télécharger la version correspondant à l'architecture utilisée.
- Exécuter l'installateur.
- Suivre les étapes affichées par l'assistant.
- Ouvrir un terminal.
- Vérifier l'installation avec la commande de version disponible sur le système.
La FAQ officielle recommande également de télécharger la dernière version disponible et explique les différences entre les versions AGPL et commerciales.
Installation sous macOS
La documentation officielle indique que Homebrew ou MacPorts peuvent être utilisés pour installer Ghostscript sur macOS. Elle recommande ensuite de vérifier l'installation avec gs --version.
Exemple avec Homebrew :
brew install ghostscriptPuis :
gs --versionLa commande de version permet de vérifier que l'exécutable est accessible depuis le terminal.
Installation sous Linux
Les modalités d'installation sous Linux dépendent de la distribution. La documentation Ghostscript précise notamment que le projet ne fournit pas lui-même les paquets RPM et qu'il existe une distribution Snap officielle pour Linux x86 64 bits.
Pour une installation destinée à une infrastructure de production, il est préférable de vérifier les paquets proposés par la distribution utilisée et leur cycle de mise à jour. Lorsque la version exacte est importante, les téléchargements officiels et la documentation de compilation constituent les références à consulter.
Cas d'utilisation pour Ghostscript
Ghostscript peut être pertinent dans de nombreux scénarios professionnels.
Automatisation documentaire
Un serveur peut appeler Ghostscript depuis un script afin de convertir automatiquement des documents entrants. Cette approche est particulièrement adaptée aux traitements par lots.
Génération d'images à partir de PDF
Un système documentaire peut convertir chaque page d'un PDF en image PNG à une résolution définie. Ghostscript documente explicitement cette utilisation avec ses périphériques raster.
Préparation de documents pour l'impression
Les fonctionnalités de conversion, de gestion des couleurs et de génération de sorties adaptées à différents périphériques rendent Ghostscript pertinent dans certains workflows d'impression et de prépresse. Le site officiel met notamment en avant la gestion avancée des couleurs, le rendu raster et la conversion vers différents formats.
Intégration dans des applications
Ghostscript peut être appelé comme application en ligne de commande ou intégré directement à une application sous forme de SDK.
Cette possibilité intéresse notamment les développeurs qui souhaitent intégrer des fonctions de conversion PDF dans une application serveur ou un outil métier.
Ghostscript face aux alternatives
Ghostscript n'est pas le seul moteur open source disponible pour le traitement des documents. Deux alternatives particulièrement connues sont MuPDF et Poppler.
MuPDF est présenté officiellement comme un framework open source pour visualiser, convertir et manipuler des documents PDF, XPS et e-book. Il fournit également des outils en ligne de commande et une bibliothèque destinée au développement d'applications.
Poppler est quant à lui une bibliothèque de rendu PDF basée sur le code de Xpdf. Son écosystème comprend notamment des bibliothèques et différents utilitaires PDF.
| Critère | Ghostscript | MuPDF | Poppler |
|---|---|---|---|
| Open source | Oui, sous AGPL | Oui, selon les composants et conditions du projet | Oui |
| Traitement PDF | Oui | Oui | Oui |
| PostScript | Oui | Non présenté comme fonction centrale | Non présenté comme fonction centrale |
| Ligne de commande | Oui | Oui | Oui |
| Bibliothèque pour développeurs | Oui | Oui | Oui |
| Rasterisation | Oui | Oui | Oui |
| XPS | Oui | Oui | Oui |
| Orientation principale | PDF, PostScript, conversion et impression | PDF, documents et rendu | Rendu et outils PDF |
Cette comparaison doit être comprise comme une comparaison d'orientation et de capacités générales, et non comme un classement de performance. Le meilleur choix dépend du format d'entrée, du format de sortie, du langage de programmation, des contraintes de licence et du workflow visé.
Avantages et inconvénients
| Avantages | Inconvénients |
|---|---|
| ✅ Large éventail de fonctions pour l'interprétation, la conversion et le rendu des documents PDF et PostScript | ❌ Courbe d'apprentissage assez importante pour les utilisateurs peu familiers avec la ligne de commande |
| ✅ Nombreux formats de sortie, notamment PDF, PostScript, EPS, XPS, texte et images | ❌ Nombre élevé d'options et de paramètres pouvant rendre les configurations avancées complexes |
| ✅ Bonne intégration dans les scripts et les processus automatisés | ❌ Les résultats de conversion peuvent dépendre fortement des paramètres utilisés |
| ✅ Adapté aux traitements par lots et aux workflows documentaires professionnels | ❌ Ce n'est pas un éditeur PDF graphique destiné à la modification manuelle des documents |
| ✅ Peut être intégré directement dans des applications sous forme de SDK | ❌ Certaines conversions présentent des limitations selon les caractéristiques du document source et du format cible |
| ✅ Prise en charge de certains standards comme PDF/A et PDF/X | ❌ Les conditions de licence doivent être examinées avant certaines utilisations commerciales ou propriétaires |
✅ Mode SAFER permettant de renforcer la sécurité lors du traitement de fichiers potentiellement non fiables | ❌ La sécurisation complète d'un environnement de production nécessite également une configuration système adaptée |
Licence et utilisation commerciale
La licence mérite une attention particulière avant tout déploiement professionnel.
Ghostscript est disponible sous licence GNU AGPL et sous licence commerciale proposée par Artifex. La FAQ officielle précise notamment que l'utilisation dans un environnement propriétaire fermé, certaines formes de distribution et certains déploiements SaaS peuvent nécessiter une licence commerciale.
Il ne faut donc pas assimiler « open source » à « utilisable sans aucune contrainte dans n'importe quelle architecture ».
Avant d'intégrer Ghostscript à un produit commercial, l'équipe juridique ou technique responsable doit vérifier précisément les obligations applicables à son scénario. La documentation officielle recommande elle-même de consulter les conditions de licence et, en cas d'incertitude, de contacter Artifex.
Ghostscript vaut-il la peine d'être utilisé ?
Pour un développeur ou un administrateur système qui recherche un moteur puissant de traitement PDF et PostScript, Ghostscript reste une solution particulièrement intéressante.
Son principal avantage réside moins dans une interface utilisateur que dans sa capacité à s'intégrer à des chaînes de traitement automatisées. La combinaison de la ligne de commande, des nombreux périphériques de sortie, des possibilités de conversion et de l'intégration dans des applications en fait un outil adapté aux environnements techniques.
Il faut toutefois prendre en compte deux éléments avant de le sélectionner. Le premier concerne la complexité des paramètres, qui demande une certaine expertise pour obtenir des résultats reproductibles. Le second concerne la licence, qui doit être analysée en fonction du mode de déploiement et de distribution.
Conclusion
Ghostscript est un moteur de traitement documentaire particulièrement complet pour les environnements professionnels. Il permet d'interpréter PDF et PostScript, de convertir des documents, de produire des images, de générer différents formats et d'automatiser des workflows complexes depuis la ligne de commande.
Pour les développeurs et les spécialistes IT, sa force principale est son intégrabilité. Il peut fonctionner comme outil autonome ou être intégré dans une application, ce qui permet de construire des chaînes automatisées de traitement de documents. Dans un environnement professionnel, la disponibilité d'un support technique peut également constituer un élément à prendre en compte selon les besoins du projet et le mode de déploiement.
Ghostscript constitue donc un excellent choix pour les projets nécessitant un moteur PDF et PostScript configurable et automatisable. En revanche, les utilisateurs doivent prévoir une phase d'apprentissage et examiner soigneusement les conditions de licence avant tout déploiement commercial ou SaaS.