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.
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[1]. 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).
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[2] 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 :
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[réf. nécessaire].
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[réf. nécessaire].
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[Quand ?] 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.