APIs/spools:liste,rtv..,duplication,transformation

BoTTom |   
 
 APIs portant sur la notion de spool
 
 QUSLSPL donne une liste de spools dans un user space
 
 QUSRSPLA renvoi (dans une variable) des informations concernant un spool
 
 depuis la V2R20 :
 
 QSPOPNSP ouvre un fichier spool (pour lecture ultérieure)
 
 QSPGETSP place le contenu d'un spool (ouvert par QSPOPNSP) dans
          un user space.
 
 QSPCRTSP crée un fichier spool (en utilisant la même strcuture que celle
          renvoyée par QUSRSPLA ==> utile pour dupliquer)
 
 QSPPUTSP génére le contenu d'un spool (créé par QSPCRTSP) avec le contenu
          d'un user space (généré par pgm ou par QSPGETSP)
 
 QSPCLOSP ferme un fichier spool ouvert par QSPOPNSP ou crée par QSPCRTSP
 


|   
 DUPLICATION D'UN SPOOL  à l'aide des commandes système
 
 la première technique est la plus simple, mais elle est réservée au texte 
 
 Recherche des informations d'un spool par QUSRSPLA (format SPLA0200)
 
 Création d'un fichier physique de travail RCDLEN(lg d'une ligne + 1)
  CPYSPLF .......... CTLCHAR(*FCFC) 
  ouverture du fichier physique (modification éventuelle du texte)
 
 Modification éventuelle des paramètres (FORMAT SPLA0200)
 
 OVRPRTF QSYSPRT CTLCHAR(*FCFC) + paramètres du format SPLA0200
  CPYF du PF de travail TOFILE(QSYSPRT)
 
 Suppression du fichier de travail
 
 Les caractères de contrôle sont placés à gauche du texte sur 1 octet
  et sont : ' ' = espace d'1 ligne, '0' = 2 lignes, '-' = 3 lignes
            '+' = pas d'espace
            '1' = saut de page
            ('x' (x= 1 à 9) = saut cannal x)


|   
 DUPLICATION D'UN SPOOL  par API (Flot AFP supporté) 
 
 création d'un user space
 
 recherche des informations d'un spool par QUSRSPLA (format SPLA0200)
 
 ouverture de l'original (QSPOPNSP)
  remplissage du user space (QSPGETSP)
 fermeture de l'original (QSPCLOSP)
 
 modification éventuelle des paramètres
 
 création du nouveau spool (QSPCRTSP)
  écriture du nouveau spool (QSPPUTSP)
 fermeture du nouveau spool (QSPCLOSP)
 
 suppression du user space intermédiaire
 
 
 
 
 


|   
Pour dupliquer le spool sur un système distant il faut transmettre
 le format SPLA0200 et le contenu du user space à l'aide d'un dialogue APPC.
 (pgm à pgm via fichiers ICF)
 
Les données ne seront pas transférées dans leur totalité mais par buffer
 (voir le détail des user space)
                                                                            
 pgm1  EVOKE(pgm2)  ..................!!.............> pgm2
                                      !!
 QUSRSPLA                             !!               pgm2
                                      !!
 envoi du format SPLA0200  -----------!!--------------->  QSPCRTSP
                                      !!                  création *USRSPC
 QSPOPNSP                             !!
                                      !!
  QSPGETSP                            !!
                                      !!
!>lecture *USRPSC                     !!                  réception<-------!
!         envoi ----------------------!!----------------> écriture *USRSPC !
!-----------                          !!                              -----!
  QSPCLOCP                            !!                  création =QSPPUTSP
  fin de la transaction / ............!!.............. /  QSPCLOSP


|   
La version V2R30 apporte en plus une API de transformation de données
 du flot AFPDS vers un flot ASCII : IBM, HP ou POSTSCRIPT
 
 (Depuis la V3R60, cela est intégré dans la gestion des imprimantes ASCII)
 
Elle fonctionne avec un user-space en entrée et un user-space en sortie
 
Il suffit donc
1/ de créer user space 1 et user psace 2
2/ demander le placement du contenu du spool (QSPGETSP)
    dans user space 1
3/ d'appeller l'API QWPZTAFP (user space 1 en entrée,user space 2 en sortie)
 
4/ Puis de lire le contenu de user space 2 et d'écrire
    par programme en utilisant un PRTF avec DEVTYPE(*USERASCII)
 
     (le système ne fait que transmettre les données à l'unité)
 
 
                                             Voir membre TWPTAFP dans
                                                         QUSRTOOL/TAASYSC
 


|   
Détail des APIs:
 
Liste de fichiers spool :
                          + QUSLSPL
 
                          - CHAR(20) <-USRSPC(10c)-><-biblio(10c)-->
                          - CHAR(8)  Format API (SPLF0100, SPLF0200)
                          - CHAR(10) Profil utilisateur
                                     . un nom
                                     . *CURRENT
                                     . *ALL
                          - CHAR(20) <-OUTQ(10c)-><-biblio(10c)->
                                       . un nom     . un nom
                                       . *ALL       . ou *CURLIb ou *LIBL
                          - CHAR(10) FORMTYPE
                                       . une valeur
                                       . *STD
                                       . *ALL
                          - CHAR(10) USRDTA
                                       . une valeur
                                       . *ALL
 


|   
 
 
Attributs d'un fichier spool:
                          + QUSRSPLA 
 
                          - CHAR(?)  Variable de retour
 
                          - BIN(4,0) Lg de la variable de retour
 
                          - CHAR(8)  Format API (SPLA0100, SPLA0200)
 
                          - CHAR(26) <-job(10c)-><-user(10c)--><-n°(6c)->
                                     valeurs spéciales
                                                     . * = job en cours
                                                     . *INT (param suivant)
                          - CHAR(16) Identification interne d'un travail
                                      Renvoyé par API QUSLJOB (liste jobs)
                                                      QUSLSPL (liste spools)
                                                      dans un user space.
                          - CHAR(16) Indentification interne du spool
                                      Renvoyé par API QUSLSPL
 


|   
 
 
Attributs d'un fichier spool:
 
                          + QUSRSPLA      (SUITE) 
 
                          - CHAR(10) Nom du spool
                                     ou *INT si le paramètre précédent
                                             est renseigné
                          - BIN(4,0) N° du spool (si nom <> *INT)
                                     valeurs spéciales
                                                     . 0 = *ONLY
                                                     .-1 = *LAST
 
 
       En ce qui concerne le travail il est possible de renseigner:
               - nom + user
               - nom + n°
               - nom + user + n°
 
 
 


|   
 
ouverture d'un fichier spool:
                          + QSPOPNSP 
 
                          - BIN(4)   ID du spool en retour
                                     (à utiliser avec QSPGETSP)
                          - CHAR(26) <-job(10c)-><-user(10c)--><-n°(6c)->
                                     valeurs spéciales * = job en cours
                                                       *INT (param suivant)
                          - CHAR(16) Identification interne d'un travail
                                      Renvoyé par API
                          - CHAR(16) Indentification interne du spool
                                      Renvoyé par API
                          - CHAR(10) Nom du spool
                                     ou *INT si param. précédent renseigné
                          - BIN(4,0) N° du spool (si nom <> *INT)
                                     . 0 = *ONLY, -1 = *LAST
                          - BIN(4,0) nombre de buffer à "lire" via QSPGETSP
                                     -1 =: lecture complète
                                     1,8,16,24,32 ou multiple de 32
                                     (8 conseillé)
                          - CHAR(??) code erreur


|   
 
Création d'un fichier spool:
 
                          + QSPCRTSP
 
                          - BIN(4)   ID du spool en retour
                                     (à utiliser avec QSPPUTSP)
 
                          - CHAR(3292) attributs du spool
                                        (format SPLA0200)
 
                          - CHAR(??) code erreur
 
Le propriètaire du spool est indiqué dans la zone USRPRF ,s'il s'agit du
 profil en cours, le spool appartient au job en cours, sinon le profil en
 cours doit avoir les droits *SPLCTL et le spool appartiendra au job
 QPRTJOB (déja utilisé lors de changement de profil, via QWTSETP)
 
cette api utilise le format SPLA0200 (infos renvoyées par QUSRSPLA) pour des
 raisons de commodité, mais elle n'utilise pas toutes les zones.
 
 


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
   1    4 B(4)  nbr d'octets retournés(ici nbr d'octets utilisés)         O
   5    8 B(4)  nbr d'octets disponibles                                  N
   9   16 C(8)  format = SPLA0200                                         O
  17   32 C(16) identifaction interne du job                              N
  33   48 C(16)   "             "     du spool                            N
  49   58 C(10) nom du job                                                N
  59   68 C(10) profil utilisateur (voir particularités)                  O
  69   74 C(6)  n° du job                                                 N
  75   84 C(10) nom du spool                                              O
  85   88 B(4)  N° du spool                                               N
  89   98 C(10) type d'imprimé (*STD,...)                                 O
  99  108 C(10) USRDTA                                                    O
 109  118 C(10) état (*READY,*PENDING,*SAVED,*HELD,...)                   N
 119  128 C(10) disponibilité(*SCHEDULE,*FILEEND,*IMMED)                  O
 129  138 C(10) retenu HOLD(*YES,*NO)                                     O
 139  148 C(10) sauvegardé SAVE(*YES,*NO)                                 O
 149  152 B(4)  nombre de pages                                           O
 153  156 B(4)  nombre de pages déja écrites                              N
 157  160 B(4)  première page (-1=dernière page,0=début, ou un chiffre)   O


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
 161  164 B(4)  dernière page (0=tout, ou un chiffre)                     O
 165  168 B(4)  dernière page imprimée                                    N
 169  172 B(4)  redémarrage (-1=*STRPAGE,-2=*ENDPAGE, ou un chiffre)      O
 173  176 B(4)  nombre de copies total                                    N
 177  180 B(4)  nombre de copies restant                                  O
 181  184 B(4)  LPI (en dixième, 40 = 4 LPI)                              O
 185  188 B(4)  CPI (idem)                                                O
 189  190 C(2)  priorité de sortie(1 - 9) dans les limites du profil      O
 191  200 C(10) OUTQ (blanc = dft)                                        O
 201  210 C(10) bibliothèque/OUTQ                                         O
 211  217 C(7)  date d'ouverture du spool                                 N
 218  223 C(6)  heure d'ouverture                                         N
 224  233 C(10) PRTF utilisé à la création                                O
 234  243 C(10) bibliothèque/PRTF                                         O
 244  253 C(10) Pgm ayant généré ce spool                                 O
 254  263 C(10) bibliothèque/PGM                                          O
 264  278 C(15) code accounting                                           O
 279  308 C(30) PRTTXT                                                    O
 309  312 B(4)  lg des enregistrements(-1 = *RCDFMT,pour prtf EXTERNES)   O


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
 313  316 B(4)  MAXRCD (0 = *NOMAX)                                       O
 317  326 C(10) type d'unité(PRINTER,DISKETTE,TAPE)                       N
 327  336 C(10) type d'imprimante (*AFPDS,*IPDS,*SCS,*USERASCII,...)      O
 337  348 C(12) nom du document (impression office)                       O
 349  412 C(64) dossier             "          "                          O
 413  420 C(8)  procedure ayant générée ce spool (env.36)                 O
 421  430 C(10) FIDELITY                                                  O
 431  431 C(1)  remplacement des caractères non imprimables               O
 432  432 C(1)  caractère de remplacement                                 O
 433  436 B(4)  hauteur de page                                           O
 437  440 B(4)  largeur de page                                           O
 441  444 B(4)  nbr de séparateurs                                        O
 445  448 B(4)  ligne d'overflow                                          O
 449  492 ---   différentes infos DBCS                                    O
 493  502 C(10) jeu de caractère graphique (partie g.du CHRID) ou *DEVD   O
 503  512 C(10) page de code               (partie D.du CHRID) ou *DEVD   O
 513  522 C(10) Définition d'imprimé                                      O
 523  532 C(10) bibliothèque/formdf                                       O
 533  536 B(4)  tiroir                                                    O


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
 537  546 C(10) Police (id police ou *DEVD,*CPI)                          O
 547  552 C(6)  id du spool en env. 36                                    N
 553  556 B(4)  PAGRTT (-1=*AUTO,-2=*DEVD,-3=*COR,0,90,180,270)           O
 557  560 B(4)  JUSTIFY (% de justification à droite=0,50,100)            O
 561  570 C(10) DUPLEX (*FORMDF,*NO,*YES,*TUMBLE)                         O
 571  580 C(10) FOLD (*YES,*NO)                                           O
 581  590 C(10) CTLCHAR (*NONE,*FCFC)                                     O
 591  600 C(10) ALIGN (*YES,*NO)                                          O
 601  610 C(10) PRTQLTY (*STD,*DRAFT,*NLQ,*FASTDRAFT)                     O
 611  620 C(10) FORMFEED (*DEVD,*CONT,*CUT,*AUTOCUT)                      O
 621  728 C(108) informations diskette                                    N
 729  732 B(4)  nbr total d'enregistrements                               O
 733  736 B(4)  MULTIUP (nbr logique de pages/page physique)              O
 737  746 C(10) nom du fond recto ou *NONE                                O
 747  756 C(10) bibliothèque/fond de page                                 O
 757  764 15,5  Packé : position verticale du fond de page                O
 765  772 15,5  packé : position horizontale  "    "  "                   O
 773  782 C(10) nom du fond verso ou *NONE                                O
 783  792 C(10) bibliothèque/fond de page                                 O


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
 793  800 15,5  Packé : position verticale du fond de page recto          O
 801  808 15,5  packé : position horizontale  "    "  "      "            O
 809  818 C(10) unité de mesure/UOM (*CM,*INCH)                           O
 819  828 C(10) nom de la définition d'imprimé (PAGDFN)                   O
 829  838 C(10) bibliothèque/définition d'imprimé                         O
 839  848 C(10) entreligne (*SINGLE,*DOUBLE,*TRIPLE,*CTLCHAR)             O
 849  856 15,5  packé : taille de point/police                            O
 857  860 B(4)  taille maxi d'un enregistrement(le + long,pour *AFPDS)    O
 861  864 B(4)  taille du buffer ( 512 : recommandé pour SCHEDULE(*IMMED) O
                                  4079 : recommandé pour autres valeurs
 865  870 C(6)  niveau de version du spool (VxRxMx)                       O
 871  886 C(16) table des polices codées (4 x 4,utilisé sous MVS et VM)   O
 887  896 C(10) utilisation/canal (*NORMAL ou ' ' = param suivant)        O
 897  944 C(48) valeurs de canal (12 fois BIN(4))                         O
 945  952 C(10) graphique pour type d'imprimante(4214,4234,522X,IPDS)     O
 953  962 C(10) format (*FIXED,*VARIABLE)                                 O
 963  964 C(2)  réservé                                                   N
 965  972 15,5  packé : hauteur du papier (en pouce) dans le tiroir 1     O
 973  980 15,5  packé : largeur du papier (en pouce) dans le tiroir 1     O


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
 981  988 15,5  packé : hauteur du papier (en pouce) dans le tiroir 2     O
 989  996 15,5  packé : largeur du papier (en pouce) dans le tiroir 2     O
 997 1000 B(4)  nombre de buffer                                          N
1001 1004 B(4)  Largeur maxi (en nombre de caractères)                    O
1005 1008 B(4)  largeur alternée (office uniquement)                      O
1009 1012 B(4)  hauteur alternée (office uniquement)                      O
1013 1016 B(4)  LPI alterné (office uniquement)                           O
1017 1018 C(2)  Indicateur traitement de texte/38                         O
1019 1019 C(1)  fichier ouvert (Y = oui, doit être N pour duplication)    O
1020 1020 C(1)  nbr de page est-il estimé ? (Y,N)                         O
1021 1021 C(1)  arret du spool lors d'un dépassement de capacité (Y ou N) O
1022 2022 C(1)  "table référence characters" pour impr 1043 (Y ou N)      O
1023 1023 C(1)  redéfinition de caractères (Y ou N)                       O
1024 1024 C(1)  CPI modifié en cours d'impression (Y ou N)                O
1025 1025 C(1)  TRANSPARENCY utilisé (Y ou N)                             O
1026 1026 C(1)  DBCS (Y ou N)                                             O
1027 1027 C(1)  rotation DBCS (Y ou N)                                    O
1028 1028 C(1)  code page étendu modifié en cours d'impression (Y ou N)   O
1029 1029 C(1)  surimpression en gras ???? (Y ou N)                       O


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
1030 1030 C(1)  commandes reconnues uniquement par 3812 (Y ou N)          O
1031 1031 C(1)  LPI modifié en cours d'impression (Y ou N)                O
1032 1032 C(1)  erreur graphique (Y ou N)                                 O
1033 1033 C(1)  commandes non reconnues par 5219 (Y ou N)                 O
1034 1034 C(1)  commandes non reconnues par 3812 (Y ou N)                 O
1035 1035 C(1)  il y a-t-il des données encadrées (Y ou N)                O
1036 1036 C(1)  ce spool contient-il des codes à barre                    O
1037 1037 C(1)  couleur ? (Y ou N)                                        O
1038 1038 C(1)  tiroir modifié en cours d'impression  (Y ou N)            O
1039 1039 C(1)  CHRID modifié en cours d'impression  (Y ou N)             O
1040 1040 C(1)  LPI modifié en cours d'impression  (Y ou N)               O
1041 1041 C(1)  ce spool contient-il plusieurs polices (Y ou N)           O
1042 1042 C(1)  caractères gras? (Y ou N)                                 O
1043 1043 C(1)  PAGRRT n cours d'impression  (Y ou N)                     O
1044 1044 C(1)  ce spool contient-il des soulignements (Y ou N)           O
1045 1045 C(1)  ce spool contient-il des surlignements (Y ou N)           O
1046 1046 C(1)  ce spool a-t-il été construit avec SDD (Y ou N)           O
1047 1047 C(1)  ce spool contient-il un saut de page final (Y ou N)       O
1048 1048 C(1)  données SCS (non IPDS)                     (Y ou N)       O


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
1049 1049 C(1)  flot de données généré par l'utilisateur USRDFN ou office O
1050 1050 C(1)  ce spool contient-il du graphisme (Y ou N)                O
1051 1051 C(1)  commandes SCS inconnues ? (Y ou N)                        O
1052 1052 C(1)  ASCII transparency (x'03/lg cde/cde ASCII) Y ou N         O
1053 1053 C(1)  ce spool contient-ol un flot de données PRPQ/36 (Y ou N)  O
1054 1054 C(1)  ce spool a-t-il été généré par OFFICE (Y ou N)            O
1055 1055 C(1)  LPI non supporté (OFFICE uniquement)                      O
1056 1056 C(1)  message CPA3353 "*SCS non suporté par.." envoyé ?         O
1057 1057 C(1)  commande SCS "set exception" contenue (Y ou N)            O
1058 1058 C(1)  ce spool contient-il le caractère "retour chariot" ?      O
1059 1059 C(1)  erreurs de positionnement détectées ?? (Y ou N)           O
1060 1060 C(1)  ce spool contient-il un caractère incorrecte (Y ou N)     O
1061 1061 C(1)  info lg codée sur 8 octets contenue dans le spool (AFPDS) O
1062 1062 C(1)  ce spools contient-il le caractère X'5A' (AFPDS)          O
1063 1063 C(1)  réservé                                                   N
1064 1068 B(4)  nbr de polices équivalentes  (IPDS)                       O
1069 1072 B(4)  nbr de bibliothèques de ressources                        N
1073 2225 C(1153) table des polices équivalentes                          O
2226 2856 C(631)  tables des bibliothèques de ressources                  N


|   
Détail du format SPLA0200
                                                                 utilisé par
  DE  A   type    description                                     QSPCRTSP ?
2857 2857 C(1)  ce spool contient-il des données crées par AFPDS (Y ou N) O
2858 2858 C(1)  Le CHRID vient-il du CCSID du job (Y ou N)                O
3152 3160 15,5  Packé : position verticale marge recto                    O
3161 3168 15,5  Packé : position horizontale marge recto                  O
3169 3176 15,5  Packé : position verticale marge verso                    O
3177 3184 15,5  Packé : position horizontale marge verso                  O
3185 3192 15,5  Packé : hauteur de page en unité de mesure                O
3193 3200 15,5  Packé : largeur de page  "   "    "   "                   O
3201 3210 C(10) unité de mesure (*ROWCOL, *UOM)                           O
3211 3211 C(1)  ce spool utilise-t-il des ressources AFPDS (via SDD)      O
3212 3221 C(10) FNTCHRSET  (un nom ou *FONT)                              O
3222 3231 C(10) bibliothèque/FNTCHRSET                                    O
3232 3241 C(10) nom d'une page de code                                    O
3242 3251 C(10) bibliothèque/page de code                                 O
3252 3261 C(10) CDEFNT (AFPDS uniquement)                                 O
3262 3271 C(10) bibliothèque/CDEFNT                                       O
3272 3281 C(10) police DBCS                                               O
3282 3291 C(10) bibliothèque/ police DBCS                                 O
3292 3292 C(1) ce spool a-t-il été généré par API QSPCRTSP     Fin.       N


|   
 
 fermeture d'un spool :
                          + QSPCLOSP
 
                          - BIN(4)   ID du spool renvoyée par QSPCRTSP
                                                           ou QSPOPNSP
                          - CHAR(??) code erreur
 
 "lecture" d'un spool :
                          + QSPGETSP
 
                          - BIN(4)   ID du spool renvoyée par QSPOPNSP
 
                          - CHAR(20) user space qualifié
 
                          - CHAR(8)  format = SPFR0100:infos sur les données
                                              SPFR0200:infos + les données
                                               (fmt utilisé par QSPPUTSP)
                                              SPFR0300:données buffer par
                                                       buffer.
 
 


|   
 
                          - BIN(4)   n° du buffer à lire (-1 = suivant)
 
                          - CHAR(10) action en cas de lecture par buffer
                                      et fin du spool atteinte
 
                                     *WAIT attente (indéfinie)
 
                                     *ERROR erreur ou message
 
                          - code erreur
 
 "écriture" d'un spool :
                          + QSPPUTSP
 
                          - BIN(4)   ID du spool renvoyée par QSPCRTSP
 
                          - CHAR(20) user space qualifié
 
                          - code erreur
 
 


|   
Pour ces deux APIs la structure du user space est spécifique
SPFR0100 et SPFR0200                  SPFR0300
............................................................................
: --entète(E)---------------------  : --entète(E)------------------------- :
: ! offset du premier buffer (B) !  :-!-offset du premier buffer (D)     ! :
: !                              !  :|! taille des données imprimables   ! :
: !                              !  :|!                                  ! :
: --------------------------------  :|------------------------------------ :
:                                   :|                                     :
: !---infos buffer(B)------------!  :>--données imprimables(D)-----------  :
: ! offset infos générales       !  : ! ...................        ^    !  :
: ! offset infos/page            !  : ! ...................        !    !  :
: ! taille infos/page            !  : !                            !    !  :
: ! offset données imprimables   !  : !                            !    !  :
: ! taille données imprimables   !  : !                            !    !  :
: ! infos générales(I)           !  : !                        taille   !  :
: !//////////////////////////////!  : !                            !    !  :
: ! infos/page buffer 1     (P)  !  : !                            v    !  :
: ! données impr buffer 1   (D)  !  : !---------------------------------!  :
: !     ..............           !  :                                      :
: !------------------------------!  :                                      :
:...................................:......................................:


|   
Pour ces deux APIs la structure du user space est spécifique
 
ENTETE GENERALE (E)
 
   DE  A  type   description                                                
   1  64  C(64)  entète utilisateur
  65  68  B(4)   taille de l'entète
  69  72  C(4)   niveau de la structure (0200 = V2)
  73  78  C(6)   niveau de version du spool (VxRxMx)
  79  86  C(8)   format (SPFR0100 à 0300)
  87  87  C(1)   niveau d'informations I = incomplet
                                       P = complet mais partiel
                                           (manque de place)
                                       C = complet
  88  88  C(1)   reservé
  89  92  B(4)   taille utilisée
  93  96  B(4)   offset (déplacement) pour atteindre (B) ou (D)
  97 100  B(4)   nombre de buffers demandé
 101 104  B(4)   nombre de buffers renvoyés
 105 108  B(4)   taille des données imprimables (format SPFR0300)
 109 128  C(20)  réservé
 


|   
Pour ces deux APIs la structure du user space est spécifique
 
INFORMATIONS BUFFER (B)
 
   DE  A  type   description                                                
   1   4  B(4)   lg de cette section
   5   8  B(4)   N° du buffer
   9  12  B(4)   offset de la structure (I)
  13  16  B(6)   taille de la structure (I)
  17  20  B(4)   offset de la section (P)
  21  24  B(4)   taille de la section (P)
  25  28  B(4)   nombre de pages contenues dans la section (P)
  29  32  B(4)   taille de la structure de définition d'une page
  33  36  B(4)   offset de la section données à imprimer
  37  40  B(4)   taille de la section données à imprimer
 
 structure de définition d'une page ,section (P) 
   1   4  B(4)   première ligne (texte) sur cette page
   5   8  B(4)   première ligne (tout type de donnée) sur cette page
   9  12  B(4)   Offset pour atteindre le texte de cette page ,section (D)
 structure de la section (D) 
          CHAR(??) le texte de ce buffer ,à utiliser avec (P)


|   
Pour ces deux APIs la structure du user space est spécifique
 
INFORMATIONS GENERALES SUR LE BUFFER (I) / informations importantes
 
   DE  A  type   description                                                
   1   4  B(4)   nombre de lignes non blanches
   5   8  B(4)   nombre de lignes non blanches de la première page
   9  12  B(4)    (gestion/erreurs)
  13  16  B(6)    (   "      "    )
  17  20  B(4)   taille des données à imprimer
  21  30  C(10)  état (IPDS) *HOME,*PAGE,*GRAPHICS,*PAGETRANS,*HOMETRANS
  31  31  C(1)   suite de la dernière page dans le buffer suivant (Y ou N)
  32  32  C(1)   spool créé par AFPU (Y ou N)
  33  33  C(1)    (  "      "     )
  34  34  C(1)    (  "      "     )
  35  35  C(1)    (  "      "     )
  36  36  C(1)    (  "      "     )
  37  37  C(1)   spool vide (Y ou N)
  38  38  C(1)   chargement de police (Y ou N)
  39  39  C(1)   données IPDS (Y ou N)
  40  44  C(5)   réservé
 


|   
 
ET ENFIN
                          + QWPZTAFP  transformation AFPDS -> ASCII
 
                          - CHAR(20) user space qualifié en entrée
 
                          - BIN(4) Lg des données en entrée
 
                          - CHAR(20) user space qualifié en sortie
 
                          - BIN(4) lg des données écrites (info en retour)
 
                          - CHAR(??) table de contrôle
 
                          - BIN(4)   lg de la table de contrôle
 
                          - BIN(4) code erreur
 
 
 
 
 


|   
structure de la table de contrôle
 
   DE  A  type   description                                                
   1   4  B(4)   type de flot de données en sortie
                  1 : IBM LASERPRINTER 4019
                  2 : IBM LASERPRINTER 4029
                  3 : HP LASERJET II
                  4 : HP LASERJET III
                  5 : IBM personnal page printer en mode HP
                  6 : POSTSCRIPT
                  7 : Texte seul
   5   8  B(4)   Marge haute (en 1/300 éme de pouce)
   9  12  B(4)   Marge gauche (en 1/300 éme de pouce)
  13  16  B(4)   1ere page
  17  20  B(4)   dernière page
  21  21  C(1)   positionnement absolu de chaque caractère ? (Y ou N)
                 (pour limiter les décalages du fait des polices
                   proportionnelles)
  22  22  C(1)   utiliser police téléchargées (Y ou N)
                  N = utilisation d'une police résidente
 
 





©AF400