Flot IPDS

Le flot de données IPDS (Intelligent Printer Data Stream) est le flot de données hôte-à-imprimante d' IBMpour les sous-systèmes Advanced Function Presentation. Il fournit une interface pour les imprimantes à adressage à tous les points (APA) qui permet la présentation de pages contenant un mélange architectural illimité de différents types de données: texte de haute qualité, image matricielle, graphiques vectoriels et code à barres.

IPDS intègre les fonctions suivantes:

  • Différentes applications peuvent créer des données source (graphiques, image, code à barres et texte), indépendamment les unes des autres. IPDS permet que la sortie de ces applications indépendantes soit fusionnée au moment de l'impression, ce qui se traduit par une page de données mixtes intégrée.

    IPDS rend cela possible en transportant des blocs de données définis de manière indépendante (objets). Le flux de données d'affichage IBM® 3270 contient également des objets indépendants définis de la même manière, ce qui permet d'utiliser les mêmes objets dans les deux environnements.

  • IPDS est indépendant du protocole de communication de support. Cela permet la transmission du même flux de données aux imprimantes, aux contrôleurs, aux réseaux locaux et à tout autre lien réseau prenant en charge la transmission transparente des données.
  • IPDS transfère toutes les données et commandes via des champs structurés auto-identifiants qui décrivent la présentation de la page et fournissent les informations suivantes:
    • Gestion dynamique des ressources téléchargées (fonds de page, segments de page et polices chargées) et des polices résidentes
    • Contrôle des fonctions d'unité telles que le duplexage, la sélection des casiers de support et la finition de la sortie
    • Traitement complet des fonctions d'exception, permettant aux utilisateurs de contrôler le niveau de traitement des exceptions
  • IPDS fournit un protocole d'accusé de réception étendu au niveau du flot de données. Ce protocole d'accusé de réception permet de synchroniser les processus hôte et imprimante, d'échanger des informations de requête / réponse et de renvoyer des informations d'exception détaillées.

Divisions fonctionnelles IPDS

L'architecture IPDS est divisée en plusieurs zones fonctionnelles, chacune contenant un ensemble de commandes IPDS représentant une capacité d'impression majeure. Cette conception d'ensemble de fonctions permet à IPDS de prendre en charge une large gamme de produits d'impression. Les développeurs de produits peuvent faire correspondre les implémentations d'ensemble de fonctions aux besoins spécifiques de leur produit.
Divisions fonctionnelles IPDS
Contrôle d'unité
L'ensemble de fonctions est composé des commandes IPDS qui permettent de configurer une page, de communiquer les commandes de l'unité et de gérer le protocole d'accusé de réception. L'ensemble de fonctions de contrôle d'unité est le seul ensemble de fonctions obligatoire pour les imprimantes IPDS, bien que les commandes DC1 ne soient pas toutes prises en charge.
Text
Ensemble de fonctions composé de commandes et d'ordres (commandes de texte) requis pour présenter des informations de texte sur une page, un segment de page (séquence de commandes stockées) ou un fond de page (format électronique). L'ensemble de fonctions de texte contient deux sous-ensembles de texte de présentation (PT): PT1 et PT2. Les imprimantes texte prennent en charge un sous-ensemble. PT2 est un sur-ensemble de PT1 et, par conséquent, toutes les commandes contenues dans PT1 sont également dans PT2.
image IM
Ensemble de fonctions contenant les commandes IPDS requises pour présenter des données d'image matricielle sur une page, un segment de page ou un fond de page.
image IO
Ensemble de fonctions contenant des commandes qui présentent des données matricielles (similaires à l'image IM) mais avec des fonctions supplémentaires.
Graphiques
Ensemble de fonctions composé des commandes IPDS et des ordres de dessin requis pour présenter des graphiques vectoriels sur une page, un segment de page ou un fond de page. L'ensemble de fonctions graphiques contient deux sous-ensembles de dessin (DR): DR1 et DR2. Les imprimantes graphiques vectorielles prennent en charge DR2, qui est un sur-ensemble de DR1.
Code à barres
Ensemble de fonctions composé des commandes IPDS requises pour présenter des informations de code à barres lisibles par machine sur une page, un segment de page ou un fond de page.
Segments de page et fonds de page
Ensembles de fonctions composés des commandes IPDS requises pour stocker et présenter des constructions IPDS contenant du texte, des graphiques, des images et des informations de code à barres. Ces constructions stockées peuvent être des segments de page ou des superpositions.
Police chargée
Ensemble de fonctions composé des commandes IPDS nécessaires au chargement et à la suppression des informations de police.

Exigences relatives aux ensembles de fonctions pour IPDS

Pour pouvoir prétendre au support de l'architecture IPDS, un produit doit répondre aux exigences suivantes:
  • Exécuter toutes les commandes requises dans l'ensemble de fonctions de contrôle d'unité
  • Accomplir au moins un sous-ensemble d'un autre jeu de fonctions de données
  • Exécuter toutes les commandes, tous les ordres et tous les contrôles requis pour chaque ensemble ou sous-ensemble de fonctions pris en charge

Retour d'informations sur les ensembles de fonctions

Un programme de services de présentation hôte détermine les capacités fonctionnelles d'une imprimante IPDS en émettant certaines commandes de requête IPDS sur l'imprimante et en demandant un accusé de réception. Les données renvoyées par l'imprimante dans la réponse d'accusé de réception indiquent le type et le modèle de l'imprimante, les détails des ensembles de fonctions pris en charge et diverses caractéristiques de l'imprimante.

Environnement de page IPDS

IPDS crée des pages de données mixtes dans une hiérarchie d'espaces de présentation. Ces espaces de présentation sont les suivants: page physique, page logique et blocs de données.

Page physique
Support (généralement du papier) sur lequel les informations sont placées. La page physique a des limites de largeur et de profondeur qui définissent les limites du support.
Page logique
Représentation électronique de la page envoyée à l'imprimante. La page logique est une zone rectangulaire qui peut ne pas avoir la même taille que la page physique sur laquelle elle est placée. L'impression ne peut se produire que lorsque la page logique en cours coupe la page physique (zone imprimable valide).
Blocs de données
Zones rectangulaires positionnées sur la page logique. Les blocs de données peuvent être de l'un des trois types suivants:
  • Blocs de données d'image: informations de trame
  • Blocs de données graphiques: lignes, courbes, aires et autres éléments de dessin
  • Blocs de données de code à barres: caractères codés à barres, lisibles par machine ou lisibles par l'utilisateur.
Remarque: Il n'y a pas de bloc de données texte. Le texte peut être positionné n'importe où dans la zone imprimable valide. Les blocs de données peuvent être positionnés par rapport au texte.
IPDS a une relation hiérarchique entre une page physique, une page logique et des blocs de données. Dans la figure suivante, les limites de page logiques ne correspondent pas aux limites de page physiques.
Relation hiérarchique IPDS

L'un des avantages d'IPDS est que les applications indépendantes peuvent créer des données source pour chaque bloc de données. La sortie de ces applications indépendantes est fusionnée sur l'imprimante pour créer une page de données mixtes intégrée. Par exemple, les données de texte peuvent être produites dans un éditeur, les données d'image peuvent être la sortie d'un scanner stocké dans un dossier et les données graphiques peuvent être produites par Business Graphics Utility. IPDS permet d'intégrer la sortie d'application plutôt que de nécessiter l'utilisation d'applications intégrées.

Superpositions et segments de page

IPDS stocke les ressources dans l'imprimante pour une utilisation ultérieure. Les fonds de page et les segments de page peuvent être fusionnés avec la page logique avant que celle-ci ne soit imprimée sur la page physique.

Fond de page
Construction de type macro chargée par le processeur hôte et envoyée à la mémoire de l'imprimante. Un fond de page peut être constitué de n'importe quelle combinaison de données texte, de données de bloc d'image, de données de bloc de graphiques ou de données de bloc de code à barres. Un fond de page contient le même type de commandes de présentation que celles utilisées dans la page logique, mais les fonds de page sont indépendants de l'environnement de page logique. La différence majeure entre les superpositions et les pages logiques est que les superpositions sont stockées jusqu'à ce qu'elles soient supprimées, mais que les pages logiques, si elles sont stockées, sont uniquement stockées jusqu'à leur impression. Les superpositions sont souvent utilisées comme des formulaires électroniques.
Segment de page
C'est comme la superposition dans le maquillage. La différence entre un segment de page et un fond de page est que les segments de page ne sont pas indépendants de l'environnement de page ; ils sont fusionnés avec la page logique et supposent l'environnement actif.

Polices chargées

Une police est un ensemble de caractères dans un style et une taille de type particuliers. Les polices peuvent être téléchargées à partir de l'hôte ou se trouver dans l'espace de stockage de l'imprimante. Les polices téléchargées sont appelées polices chargées et sont disponibles dans l'une des configurations suivantes:

Police codée
Page de codes complète de caractères graphiques dans un style particulier. (Une page de codes mappe chaque caractère d'une police à une valeur numérique ou à un point de code.)
Jeu de symboles
Ensemble de caractères dont la structure est plus simple qu'une police codée. Les jeux de symboles sont utilisés lorsque la qualité typographique n'est pas requise. De nombreuses imprimantes à matrice de points et de nombreux écrans utilisent des jeux de symboles.

Systèmes de coordonnées

Système de coordonnées Xm, Ym (page physique)

IPDS utilise des systèmes de coordonnées orthogonales pour définir n'importe quel point d'une page. Les distances entre ces systèmes de coordonnées sont mesurées en unités logiques ou L-units plutôt qu'en pels physiques.

Le système de coordonnées Xm, Ym est le système de coordonnées de page physique. Le coin supérieur gauche de la page physique est toujours (0, 0).

L'imprimante définit le haut d'une page physique.
Xm, système de coordonnées Ym (page physique)

Le système de coordonnées Xm, Ym est fixe pour chaque taille de support. Les commandes IPDS ne peuvent pas modifier l'orientation de ces coordonnées.

Système de coordonnées Xp, Yp (page logique)

Le système de coordonnées Xp, Yp est le système de coordonnées de page logique. L'origine de ce système (Xp=0, Yp=0) est spécifiée en tant que décalage par rapport à l'origine de la page physique (Xm=0, Ym=0) via la commande Charger la position de page. Les commandes IPDS ne peuvent pas modifier l'orientation du système de coordonnées Xp, Yp ; il est toujours parallèle au système de coordonnées Xm, Ym, mais décalé par rapport à celui-ci.

La taille de la page logique dans la dimension Xp est appelée extension Xp. La taille de la page logique dans la dimension Yp est appelée extension Yp. Le système de coordonnées Xp, Yp permet de localiser des blocs de données sur la page logique.

Le système de coordonnées pour les superpositions est le même que le système de coordonnées Xp, Yp pour les pages logiques.
Xp, système de coordonnées Yp (page logique)

Système de coordonnées I, B (texte)

Le système de coordonnées Inline, Baseline (I, B) décrit le placement des blocs de données sur la page logique. L'imprimante place les caractères le long de l'axe I pour former une ligne de texte et place les lignes de texte le long de l'axe B sur la page logique. Les commandes IPDS peuvent modifier à la fois l'origine et l'orientation des axes en ligne et de la ligne de base.

Au fur et à mesure que les caractères sont développés sur la page, la coordonnée en ligne est incrémentée dans la direction positive en ligne (ou + I). Au fur et à mesure que les lignes sont développées sur la page, la coordonnée de la ligne de base est incrémentée dans la direction Ligne de base positive (ou + B).
Remarque: les caractères sont développés sur une page dans la direction dans laquelle ils seront lus (de gauche à droite, par exemple). L'imprimante peut effectivement placer des caractères ou des lignes sur une page dans différentes directions (comme dans l'impression bidirectionnelle).
Les coordonnées de la première position du texte sur la page logique sont appelées coordonnée initiale du texte en ligne (Io) et coordonnée initiale du texte de la ligne de base (Bo). Les coordonnées de la position en cours sur la page logique sont appelées coordonnées du texte en ligne en cours (Ic) et coordonnées du texte de la ligne de base en cours (Bc).
I, B Système de coordonnées (Texte)

Traitement des commandes IPDS

Le format de champ structuré IPDS permet d'envoyer des commandes à l'imprimante dans un flux continu. Chaque commande est auto-descriptive. La longueur de la commande, l'identificateur, l'octet d'indicateur et les données (pas toujours présentes) font partie de chaque commande. La conversation imprimante-hôte est exécutée comme si les commandes IPDS étaient traitées dans l'ordre séquentiel par l'imprimante.

Chaque commande IPDS contient un octet indicateur. Le paramètre sur le bit d'accusé de réception requis sur cet octet indicateur indique la fin d'une séquence de commande à l'imprimante. L'imprimante envoie ensuite une réponse d'accusé de réception à l'hôte, comme illustré dans le diagramme suivant:
Traitement des commandes IPDS

Format de la commande IPDS

Toutes les commandes IPDS sont codées au format suivant:
Longueur Commande Indicateur configuration, installation et distribution Données
Longueur
Zone de 2 octets qui indique la longueur de la commande. Ce nombre inclut lui-même, la zone de commande, l'octet indicateur et l'ID de corrélation (CID) facultatif, ainsi que les zones de données. Le champ de longueur peut être compris entre X'0005' et X'7FFF'.
Commande
Zone de 2 octets qui indique la commande IPDS.
Indicateur
Zone de 1 octet contenant les indicateurs de flux de commandes IPDS.
  • Le bit 0 est l'indicateur d'accusé de réception requis (ARQ). Si ce bit est activé, l'hôte demande à l'imprimante d'envoyer une réponse d'accusé de réception.
  • Le bit 1 est l'indicateur d'ID de corrélation (CID). S'il est en fonction, un ID de corrélation de 2 octets suit. S'il est désactivé, le CID n'est pas présent et les octets suivants (le cas échéant) contiennent la zone de données.
CID (ID corrélation)
Zone de 2 octets qui indique un identificateur pour la commande. Un programme de services de présentation peut utiliser n'importe quelle valeur comprise entre X'0000'et X'FFFF'pour l'ID de corrélation.
Données
Absent pour toutes les commandes. S'il est présent, il contient des ordres, des paramètres et des données spécifiques appropriés pour la commande donnée.

Etats d'exploitation IPDS

Les commandes IPDS sont définies dans le contexte des états de fonctionnement de l'imprimante. L'imprimante se déplace entre ces états de fonctionnement lors du traitement de la commande. Les imprimantes IPDS sont des machines d'état avec les états de fonctionnement suivants:

  • Etat du domicile
  • Etat du bloc
    • Etat du bloc d'image d'E-S
    • Etat du bloc d'image IM
    • Etat du bloc graphique
    • Etat du bloc de code à barres.
  • Etat de la page
  • Etat de superposition
  • Etat du segment de page
  • Etat de police
  • N'importe quel état
Etat du domicile
Etat de fonctionnement IPDS initial. L'imprimante revient à l'état initial à la fin de chaque page téléchargée, segment de page, police codée ou fond de page.

Lorsqu'elle est à l'état initial, l'imprimante reçoit des commandes de contrôle et d'initialisation pour préparer l'opération d'impression. Dans l'état initial, l'imprimante peut également recevoir des commandes qui suppriment des ressources ou demander le retour d'informations sur l'imprimante au programme des services de présentation de l'hôte.

Etats de bloc
Etat permettant d'établir les conditions de traitement initial d'un bloc de données et de placer le bloc de données sur la page logique, le segment de page ou le fond de page. L'imprimante peut uniquement entrer un état de bloc à partir d'états de page, de segment de page ou de fond de page.
Etat de la page
Etat de fonctionnement pour l'impression d'une page logique. L'imprimante passe de l'état de page à l'état d'accueil lors de la réception d'une commande de début de page et se ferme lors de la réception d'une commande de fin de page.

A l'état de page, l'imprimante peut recevoir des commandes qui fusionnent des fonds de page et des segments de page précédemment définis et chargés avec les informations de page en cours. L'imprimante peut également recevoir des commandes d'écriture de texte qui positionnent le texte sur la page logique et peut entrer un état de bloc pour écrire des blocs d'image, de code à barres et de graphiques.

Etat de superposition
Etat permettant le stockage des données de fond de page dans l'imprimante. L'imprimante passe à l'état de fond de page à partir de l'état d'origine lors de la réception d'une commande de début de fond de page et se ferme lors de la réception d'une commande de fin de page.

A l'état de fond de page, l'imprimante peut recevoir des commandes qui fusionnent des fonds de page et des segments de page précédemment définis et chargés avec les informations de page en cours. L'imprimante peut également recevoir des commandes d'écriture de texte qui positionnent le texte sur la page logique et peut entrer un état de bloc pour écrire des blocs d'image, de code à barres et de graphiques.

Etat du segment de page
Etat qui permet de stocker les données de segment de page dans l'imprimante. L'imprimante entre l'état du segment de page à partir de l'état d'origine lors de la réception d'une commande de début de segment de page et se ferme à l'aide d'une commande de fin de page.

Dans l'état de segment de page, l'imprimante peut recevoir des commandes d'écriture de texte qui positionnent le texte sur la page logique et peut entrer un état de bloc pour écrire des blocs d'image, de code à barres et de graphiques.

Etat de police
Etat qui permet à l'imprimante de recevoir les données de police codée téléchargées. L'imprimante passe à l'état de police à partir de l'état d'origine lors de la réception d'une commande de chargement de police.

Lorsque l'imprimante est à l'état de police, la commande de chargement de police permet d'envoyer à l'imprimante des données de police codée, de caractères matricielles. La réception d'une commande de fin renvoie l'imprimante à l'état initial.

N'importe quel état
Certaines commandes IPDS peuvent être reçues dans n'importe quel état de fonctionnement IPDS. Ces commandes ne modifient pas l'état de fonctionnement d'IPDS, à l'exception de XOA Discard Buffered Data.

Traitement par défaut

Les valeurs par défaut sont utilisées comme paramètres de contrôle lorsqu'aucune autre valeur n'est indiquée dans la commande en cours. Les valeurs par défaut IPDS sont appelées par omission ou par des valeurs transmises dans la partie zone de données des commandes. La structure par défaut IPDS est normalement hiérarchique. Les règles par défaut IPDS générales sont les suivantes:

  • Si l'alimentation a été interrompue ou si l'imprimante a été initialisée, les valeurs par défaut de page établies par l'imprimante sont utilisées jusqu'à ce que des valeurs par défaut IPDS spécifiques soient reçues.
  • Les valeurs de page initiales sont établies lorsque l'imprimante reçoit une commande de chargement de descripteur de page. Si aucune commande de ce type n'est reçue, les valeurs par défaut établies par l'imprimante restent en vigueur.
  • Les valeurs de bloc de données initiales sont établies lorsque l'imprimante reçoit une commande Write Image Control, Write Image Control 2, Write Bar Code Control ou Write Graphics Control. Ces valeurs restent en vigueur jusqu'à ce que les contrôles de données les remplacent ou jusqu'à ce que l'imprimante reçoive une commande End qui met fin au bloc.