# PCL (langage d'impression)

Le PCL (de l'anglais Printer Command Language) est un langage de description de page développé par Hewlett-Packard, et qui est devenu un standard de l'industrie. Créé en 1984, il était à l'origine destiné aux imprimantes à jet d'encre mais différentes versions ont ensuite été développées pour imprimantes thermiques, matricielles et laser.
Les langages HPGL (Hewlett Packard Graphic Language) et PJL (Printer Job Language (en)) sont supportés par les dernières versions de PCL.

## PCL 1 à 5

Les langages PCL de niveau 1 à 5e sont des langages de commande utilisant des séquences de contrôle qui sont interprétées dans l'ordre d'arrivée par l'imprimante. Ce type de langage est assez lent et implique l'utilisation de la technique du spooling pour éviter les ralentissements au moment de l'impression.
Au niveau de l'utilisateur, le flot de données PCL est généralement généré par le pilote d'impression mais chaque application peut également y ajouter son propre flux PCL d'où parfois des problèmes d'interprétation (si les versions de l'application et de l'imprimante sont différentes).
* PCL1 est apparu en 1984 sur la HP ThinkJet 2225 et permettait une impression avec une mise en page basique ;
* PCL1+ est apparu avec la HP QuietJet 2227 ;
* PCL2 a apporté le support des transactions et le traitement de données ;
* PCL3 est apparu en 1984 sur la première imprimante HP LaserJet, et a apporté les polices bitmap et des capacités graphiques. D'autres produits ont utilisé PCL3 : l'imprimante à jet d'encre HP DeskJet, et les séries des imprimantes à aiguilles HP 2932 et HP RuggedWriter 2235. PCL3 est toujours utilisé par plusieurs imprimantes à impact qui ont remplacé les anciens modèles.
* PCL3+ (monochrome) et PCL3c+ (couleur) sont utilisés sur les produits ultérieurs des gammes HP DeskJet et HP PhotoSmart.
* PCL3GUI est utilisé par les imprimantes grand format HP DesignJet.
* PCL4 est apparu en 1985 sur la HP LaserJet II, et a apporté les macros, et des polices bitmap et des graphismes plus grands. PCL4 est toujours utilisé par de nombreuses applications.
* PCL5 est apparu en mars 1990 sur la HP LaserJet III, et a apporté la mise à l'échelle des polices Intellifont (développée par Agfa), les polices vectorielles et les graphismes vectoriels HP-GL/2.
* PCL5e (PCL5 enhanced, PCL5 amélioré) est apparu le 4 octobre 1992 sur la HP LaserJet et a apporté une communication bidirectionnelle entre l'imprimante et l'ordinateur, ainsi que le support des polices Windows.
* PCL5c a apporté la prise en charge de la couleur sur la HP PaintJet 300XL et la HP Color LaserJet en 1992.

## PCL 6

PCL 6 standard, introduit vers 1995, gagne en rapidité grâce à l'utilisation de la compression des données, tout en étant compatible avec PCL5e/PCL5c.
PCL6 Enhanced est une programmation orientée objet, optimisée pour l'impression à partir d'interfaces graphiques, et compressée pour optimiser le débit. PCL6-Enhanced intègre de nouvelles fonctionnalités grâce à une architecture modulaire qui peut être facilement modifiée pour les futures imprimantes HP :
* impression plus rapide des graphiques complexes ;
* gestion plus efficace des flux de données pour le trafic sur les réseaux a débit réduit ;
* meilleure interface utilisateur (WYSIWYG) ;
* qualité d'impression améliorée, meilleure fidélité au document et rétrocompatibilité complète.
Initialement appelé PCL-XL, le nouveau langage est devenu PCL6 Enhanced, mais de nombreux produits de tiers utilisent encore l'ancienne dénomination. Certains produits prétendent être compatibles avec PCL6 Enhanced sans inclure la compatibilité descendante PCL5 ou la synthèse des polices.
PCL6 Enhanced est générée directement par le pilote d'imprimante. Du fait de sa structure et de la méthodologie de compression, il est rarement utilisé par des applications personnalisées. La documentation sur PCL6 n'est pas facilement disponible auprès de HP, et généralement réservée aux développeurs.

## PJL, Printer Job Language

Le Printer Job Language (PJL) est un langage développé par Hewlett-Packard pour donner un meilleur contrôle de l'impression aux applications et permettre une bonne communication bidirectionnelle entre le périphérique d'impression et l'application. Le principe du langage PJL est de permettre le lancement de commande simple (langage proche de l'anglais) en plus des commandes Printer Command Language ou PostScript classique. PJL est maintenant géré par la plupart des imprimantes PostScript. De nombreux fabricants d'imprimantes incluent le support des commandes PJL à leurs produits.
PJL a été introduit sur le HP LaserJet IIIsi. PJL ajoute des contrôles au niveau des tâches, tels que la commutation du langage de l'imprimante, la séparation des tâches, les commandes d'environnement, la relecture d'état, les commandes de présence du périphérique et de système de fichiers.