Scroll to navigation

ipptoolfile(5) OpenPrinting ipptoolfile(5)

NOM

ipptoolfile - Format de fichier ipptool

DESCRIPTION

Le programme ipptool(1) accepte les fichiers, sans format particulier en texte pur, qui décrivent une ou plusieurs requêtes IPP. Les commentaires commencent par le caractère « # » et se terminent à la fin de la ligne. Chaque requête est entourée par des accolades, par exemple :


# Ceci est un commentaire
{
# Le nom du test
NAME « Fichier d’impression PDF »
# La requête à envoyer
OPERATION Print-Job
GROUP operation-attributes-tag
ATTR charset attributes-charset utf-8
ATTR language attributes-natural-language en
ATTR uri printer-uri $uri
ATTR name requesting-user-name $user
ATTR mimeMediaType document-format application/pdf
GROUP job-attributes-tag
ATTR collection media-col {
# papier ordinaire US Letter à partir du bac « principal »
MEMBER collection media-size {
MEMBER integer x-dimension 21590
MEMBER integer y-dimension 27940
}
MEMBER integer media-top-margin 423
MEMBER integer media-bottom-margin 423
MEMBER integer media-left-margin 423
MEMBER integer media-right-margin 423
MEMBER keyword media-source "main"
MEMBER keyword media-type "stationery"
}
FILE testfile.pdf
# La réponse à attendre
STATUS successful-ok
EXPECT job-id OF-TYPE integer WITH-VALUE >0
EXPECT job-uri OF-TYPE uri
}
{
# Le nom du test
NAME "Attente de l’achèvement du travail"
# La requête à envoyer
OPERATION Get-Job-Attributes
GROUP operation-attributes-tag
ATTR charset attributes-charset utf-8
ATTR language attributes-natural-language en
ATTR uri printer-uri $uri
ATTR integer job-id $job-id
ATTR name requesting-user-name $user
# La réponse à attendre
STATUS successful-ok
EXPECT job-id OF-TYPE integer WITH-VALUE $job-id
EXPECT job-uri OF-TYPE uri
EXPECT job-state OF-TYPE enum WITH-VALUE 3,4,5,6,7,8,9
EXPECT job-originating-user-name OF-TYPE name WITH-VALUE "$user"
# Afficher l’état du travail en attendant son achèvement...
DISPLAY job-state
DISPLAY job-state-reasons
}

DIRECTIVES PRINCIPALES

Les directives suivantes peuvent être utilisées en dehors d’un test :

{ test }
Définir un test.
Définir la variable dénommée à la valeur donnée. Cela est équivalent à indiquer « -d nom_variable=valeur » sur la ligne de commande de ipptool(8).
Définir la variable nommée à la valeur donnée si elle n’a pas déjà une valeur.
Définir la chaîne d’identificateur pour le fichier actuel.
Indiquer si, par défaut, ipptool(8) ignorera les erreurs et poursuivra avec les tests suivants.
Inclure un autre fichier de test. La première façon inclut un fichier relatif au fichier de test actuel, tandis que la seconde inclut un fichier du répertoire inclus de ipptool(8).
Inclure un autre fichier de test si la variable nommée est définie. La première façon inclut un fichier relatif à l’actuel fichier de test, tandis que la seconde inclut un fichier du répertoire inclus de ipptool(8).
Inclure un autre fichier de test si la variable nommée n’est pas définie. La première façon inclut un fichier relatif à l’actuel fichier de test, tandis que la seconde inclut un fichier du répertoire inclus de ipptool(8).
Indiquer que le reste du fichier de test devra être ignoré si la variable est ou n’est pas définie.
Indiquer si les tests seront arrêtés après une erreur dans un fichier inclus
Indiquer que ces tests utiliseront, par défaut, « Transfer-Encoding: chunked » lors de requêtes avec fichiers joints et « Content-Length: » pour celles sans fichier joint.
Indiquer que ces tests utiliseront, par défaut, l’en-tête de HTTP/1.1 « Transfer-Encoding: chunked ». C’est le comportement par défaut et équivalent à indiquer -c sur la ligne de commande de ipptool(8). La prise en charge pour les requêtes partielles est exigée pour conformité avec toutes les versions d’IPP.
Indiquer que ces tests utiliseront, par défaut, l’en-tête de HTTP/1.0 « Content-Length: ». C’est équivalent à indiquer « -l » sur la ligne de commande de ipptool(8). La prise en charge pour les requêtes sur la taille de contenu est exigée pour conformité avec toutes les versions d’IPP.
Indiquer le numéro de version d’IPP à utiliser par défaut pour les tests ci-dessous.

DIRECTIVES DE TEST

Les directives suivantes sont comprises dans un test :

Adds an attribute to the test request. Out-of-band tags (admin-define, delete-attribute, no-value, not-settable, unknown, unsupported) have no value. Values for other tags are delimited by the comma (",") character - escape commas using the "\" character. Common attributes and values are listed in the IANA IPP registry - see references below.
Ajouter un attribut d’ensemble à la requête de test. Les attributs de membre suivent la même syntaxe que les attributs normaux et peuvent être eux-mêmes des ensembles emboités. Plusieurs valeurs d’ensemble peuvent être fournies si nécessaire, séparées par des virgules.
Utiliser la compression indiquée pour les données du document qui suit les attributs dans une tâche d’impression ou une requête d’envoi de document.
Définir un délai en seconde avant l’exécution du test. Si deux valeurs sont indiquées, la seconde est utilisée pour définir l’intervalle entre des tests répétitifs.
Indiquer que la valeur de l’attribut nommé doit être affiché comme faisant partie du compte-rendu de test.
Indiquer que la réponse doit, ou peut, ou ne doit pas inclure l’attribut nommé. Des exigences supplémentaires peuvent être ajoutées comme prédicats — consultez la section « PRÉDICATS EXPECT » pour davantage d’information sur les prédicats. Les noms d’attribut peuvent indiquer les attributs des membres en séparant les noms d’attribut et de membre avec une barre oblique, par exemple, « media-col/media-size/x-dimension ».
Indiquer si la réponse doit ou peut inclure l’attribut nommé et que toutes les occurrences de cet attribut doivent correspondre aux prédicats indiqués.
Indiquer un fichier à ajouter à la fin de la requête. Cela est habituellement utilisé lors de l’envoi d’un fichier de test d’impression.
Indiquer l’étiquette de groupe pour les attributs suivants dans la requête.
Indiquer si ipptool(8) ignorera les erreurs et continuera avec les tests suivants.
Specifies printer state monitoring tests to run in parallel with the test operation. The monitoring tests will run until all of the EXPECT conditions are satisfied or the primary test operation has completed, whichever occurs first.
Décrire le nom de test de manière compréhensible aux utilisateurs.
Indiquer les opérations à effectuer.
Specifies that the current test should be passed automatically when the variable is or is not defined.
Afficher le message fourni et attendre l’appui d’une touche par l’utilisateur pour continuer.
Indiquer la valeur d’identifiant de requête à utiliser dans la requête, soit un nombre entier soit le mot « random » pour utiliser une valeur calculée aléatoirement (comportement par défaut).
Indiquer un chemin de ressource alternatif pour la requête HTTP POST. Par défaut, c’est la ressource de l’URI fourni par le programme ipptool(8).
Indiquer que l’actuel test sera omis quand la variable est ou n’est pas définie.
Indiquer si ipptool(8) ignorera le test actuel si le test précédent se termine sur une erreur ou un succès.
Indiquer la valeur attendue du code d’état de la réponse. Des exigences supplémentaires peuvent être ajoutées comme prédicats — consultez la section « PREDICATS STATUS » pour davantage d’information sur les prédicats.
Définir une chaîne d’identificateur pour le test actuel.
Indiquer que le test utilisera « Transfer-Encoding: chunked » si un fichier est joint ou  «Content-Length: » sinon.
Indiquer si le test utilisera les en-têtes HTTP 1.1 « Transfer-Encoding: chunked ».
Indiquer que ce test utilisera les en-têtes HTTP/1.0 « Content-Length: ».
Indiquer le numéro de version d’IPP à utiliser pour ce test.

PRÉDICATS EXPECT

Les prédicats ci-dessous sont compris suivant la directive de test EXPECT :

Exiger que l’attribut d’EXPECT ait le nombre indiqué de valeurs.
Defines the variable to "1" when the EXPECT condition matches. A side-effect of this predicate is that this EXPECT will never fail a test.
Defines the variable to "1" when the EXPECT condition does not match. A side-effect of this predicate is that this EXPECT will never fail a test.
Defines the variable to the value of the attribute when the EXPECT condition matches. A side-effect of this predicate is that this EXPECT will never fail a test.
Displays the specified message when the EXPECT condition matches.
Appliquer les conditions d’EXPECT seulement si la variable indiquée est définie.
Appliquer les conditions d’EXPECT seulement si la variable indiquée n’est pas définie.
Exiger que l’attribut d’EXPECT soit dans l’étiquette de groupe indiquée.
Requires the EXPECT attribute to use one of the specified value tag(s). Most value tags also support the specification of limits in parenthesis, for example "name(42)" would allow nameWith/WithoutLanguage strings up to 42 octets in length, "name(4:MAX)" would allow nameWith/WithoutLanguage strings between 4 and 255 octets in length, and "integer(-273:MAX)" would allow integers between -273 and 2147483647.

Définir le nombre maximal de répétitions si le prédicat REPEAT-MATCH ou REPEAT-NO-MATCH est indiqué. La valeur par défaut est 1000.
Indiquer que l’actuel test doit être recommencé si la condition EXPECT correspond ou pas.
Exiger que l’attribut d’EXPECT ait le même nombre de valeurs que l’attribut similaire indiqué.
Exiger que toutes les valeurs d’URI contiennent un nom d’hôte correspondant.
Exiger que toutes les valeurs d’URI contiennent une ressource correspondante y compris le « / » de début)
Exiger que toutes les valeurs d’URI contiennent un schéma correspondant.
Exiger que toutes les valeurs de l’attribut d’EXPECT correspondent à la chaîne littérale. Les comparaisons sont sensibles à la casse.
Exiger que toutes les valeurs de l’attribut d’EXPECT correspondent au(x) nombre(s) ou à la comparaison numérique. Lors de la comparaison des valeurs d’intervalle de nombres entiers, les opérateurs « < » et « > » contrôlent seulement la limite supérieure de l’intervalle.
Exiger que toutes les valeurs de l’attribut d’EXPECT correspondent à la valeur booléenne donnée
Requires that all values of the EXPECT attribute match the regular expression, which must conform to the POSIX regular expression syntax. Comparisons are case-sensitive.
Requires that all values of the EXPECT attribute are unique. Comparisons are case-sensitive. Only charset, collection, enum, integer, keyword, mimeMediaType, naturalLanguage, rangeOfInteger, resolution, uriScheme attributes support this predicate.
Exiger qu’au moins une valeur d’URI contienne un nom d’hôte concordant.
Exiger qu’au moins une valeur d’URI contienne une ressource correspondante.(y compris le « / » de début).
Exiger qu’au moins une valeur d’URI contienne un schéma concordant.
Exiger qu’au moins une valeur de l’attribut d’EXPECT corresponde à la chaîne littérale. Les comparaisons sont sensibles à la casse.
Exiger qu’au moins une valeur de l’attribut d’EXPECT corresponde au(x) nombre(s) ou à la comparaison numérique. Lors de la comparaison des valeurs d’intervalle de nombres entiers, les opérateurs « < » et « > » contrôlent seulement la limite supérieure de l’intervalle.
Exiger qu’au moins une valeur de l’attribut d’EXPECT corresponde à la valeur booléenne donnée
Exiger qu’au moins une valeur de l’attribut d’EXPECT corresponde à l’expression rationnelle, qui doit être conforme à la syntaxe POSIX des expressions rationnelles. Les comparaisons sont sensibles à la casse.
Exiger que la(es) valeur(s) de l’attribut EXPECT corresponde(nt) à(ux) valeur(s) dans l’attribut indiqué. Par exemple, « EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported » exige que la valeur « job-sheets » soit listée comme valeur de l’attribut « job-sheets-supported ».

PRÉDICATS STATUS

Les prédicats ci-dessous sont compris suivant la directive de test STATUS :

Définir la variable à 1 quand le STATUS correspond. Un effet de bord de ce prédicat est que ce STATUS n’échouera jamais à un test.
Définir la variable à 1 quand le STATUS ne correspond pas. Un effet de bord de ce prédicat est que ce STATUS n’échouera jamais à un test.
Appliquer le STATUS seulement si la variable indiquée est définie.
Appliquer le STATUS seulement si la variable indiquée n’est pas définie.

Définir le nombre maximal de répétitions. La valeur par défaut est 1000.
Indiquer si le test actuel doit être recommencé si le code de l’état de la réponse correspond ou ne correspond pas à la valeur indiquée par la directive STATUS

CODES D’OPÉRATION

Les codes d’opération correspondent aux nombres hexadécimaux (0xHHHH) et noms de la RFC 8011 et d’autres spécifications d’extensions IPP. Voici une liste complète de noms pris en charge par ipptool(8) :


Acknowledge-Document
Acknowledge-Identify-Printer
Acknowledge-Job
Activate-Printer
Add-Document-Images
Allocate-Printer-Resources
Cancel-Current-Job
Cancel-Job
Cancel-Jobs
Cancel-My-Jobs
Cancel-Resource
Cancel-Subscription
Close-Job
Create-Job
Create-Job-Subscriptions
Create-Printer
Create-Printer-Subscriptions
Create-Resource
Create-Resource-Subscriptions
Create-System-Subscriptions
CUPS-Accept-Jobs
CUPS-Accept-Jobs
CUPS-Add-Modify-Class
CUPS-Add-Modify-Printer
CUPS-Authenticate-Job
CUPS-Create-Local-Printer
CUPS-Delete-Class
CUPS-Delete-Printer
CUPS-Get-Classes
CUPS-Get-Default
CUPS-Get-Devices
CUPS-Get-Document
CUPS-Get-PPD
CUPS-Get-PPDs
CUPS-Get-Printers
CUPS-Move-Job
CUPS-Reject-Jobs
CUPS-Set-Default
Deactivate-Printer
Deallocate-Printer-Resources
Delete-Printer
Deregister-Output-Device
Disable-All-Printers
Disable-Printer
Enable-All-Printers
Enable-Printer
Fetch-Document
Fetch-Job
Get-Job-Attributes
Get-Jobs
Get-Next-Document-Data
Get-Notifications
Get-Output-Device-Attributes
Get-Printer-Attributes
Get-Printer-Support-Files
Get-Printer-Supported-Values
Get-Printers
Get-Subscription-Attributes
Get-Subscriptions
Get-System-Attributes
Get-System-Supported-Values
Hold-Job
Hold-New-Jobs
Identify-Printer
Install-Resource
Pause-All-Printers
Pause-All-Printers-After-Current-Job
Pause-Printer
Pause-Printer-After-Current-Job
Print-Job
Print-URI
Promote-Job
Purge-Jobs
Register-Output-Device
Release-Held-New-Jobs
Release-Job
Renew-Subscription
Reprocess-Job
Restart-Job
Restart-Printer
Restart-System
Resubmit-Job
Resume-All-Printers
Resume-Job
Resume-Printer
Schedule-Job-After
Send-Document
Send-Hardcopy-Document
Send-Notifications
Send-Resource-Data
Send-URI
Set-Job-Attributes
Set-Printer-Attributes
Set-Resource-Attributes
Set-System-Attributes
Shutdown-All-Printers
Shutdown-One-Printer
Shutdown-Printer
Startup-All-Printers
Startup-One-Printer
Startup-Printer
Suspend-Current-Job
Update-Active-Jobs
Update-Document-Status
Update-Job-Status
Update-Output-Device-Attributes
Validate-Document
Validate-Job

CODES D’ÉTAT

Les codes d’état correspondent aux nombres hexadécimaux (0xHHHH) et noms de la RFC 8011 et d’autres spécifications d’extensions IPP. Voici une liste complète de noms pris en charge par ipptool(8) :


client-error-account-authorization-failed
client-error-account-closed
client-error-account-info-needed
client-error-account-limit-reached
client-error-attributes-not-settable
client-error-attributes-or-values-not-supported
client-error-bad-request
client-error-charset-not-supported
client-error-compression-error
client-error-compression-not-supported
client-error-conflicting-attributes
client-error-document-access-error
client-error-document-format-error
client-error-document-format-not-supported
client-error-document-password-error
client-error-document-permission-error
client-error-document-security-error
client-error-document-unprintable-error
client-error-forbidden
client-error-gone
client-error-ignored-all-notifications
client-error-ignored-all-subscriptions
client-error-not-authenticated
client-error-not-authorized
client-error-not-fetchable
client-error-not-found
client-error-not-possible
client-error-print-support-file-not-found
client-error-request-entity-too-large
client-error-request-value-too-long
client-error-timeout
client-error-too-many-subscriptions
client-error-uri-scheme-not-supported
cups-error-account-authorization-failed
cups-error-account-closed
cups-error-account-info-needed
cups-error-account-limit-reached
cups-see-other
redirection-other-site
server-error-busy
server-error-device-error
server-error-internal-error
server-error-job-canceled
server-error-multiple-document-jobs-not-supported
server-error-not-accepting-jobs
server-error-operation-not-supported
server-error-printer-is-deactivated
server-error-service-unavailable
server-error-temporary-error
server-error-version-not-supported
successful-ok
successful-ok-but-cancel-subscription
successful-ok-conflicting-attributes
successful-ok-events-complete
successful-ok-ignored-notifications
successful-ok-ignored-or-substituted-attributes
successful-ok-ignored-subscriptions
successful-ok-too-many-events

ÉTIQUETTES

Les étiquettes de valeur et de groupe correspondent aux noms de la RFC 8011 et d’autres spécifications d’extensions IPP. Voici les étiquettes de groupe :


document-attributes-tag
event-notification-attributes-tag
job | job-attributes-tag
operation | operation-attributes-tag
printer | printer-attributes-tag
resource-attributes-tag
subscription-attributes-tag
system-attributes-tag
unsupported-attributes-tag

Voici les étiquettes de valeur :


admin-define
boolean
charset
collection | begCollection
dateTime
default
delete-attribute
enum
integer
keyword
language | naturalLanguage
mimetype | mimeMediaType
name | nameWithLanguage | nameWithoutLanguage
no-value
not-settable
octetString
rangeOfInteger
resolution
text | textWithLanguage | textWithoutLanguage
unknown
unsupported
uri
uriScheme

VARIABLES

Le programme ipptool(8) conserve une liste de variables qui peuvent être utilisées dans n’importe quelle chaîne littérale ou valeur d’attribut en indiquant « $nom_variable ». En plus des variables définies en utilisant l’option « -d » ou la directive DEFINE, les variables prédéfinies suivantes sont disponibles :

$$
Insérer un seul caractère « $ ».
$ENV[nom]
Insérer la valeur de la variable d’environnement nommée, ou une chaîne vide si la variable d’environnement n’est pas définie.
$date-current
Inserts the current date and time using the ISO-8601 format ("yyyy-mm-ddThh:mm:ssZ").
$date-start
Inserts the starting date and time using the ISO-8601 format ("yyyy-mm-ddThh:mm:ssZ").
$nom_fichier
Insérer le nom de fichier fourni à ipptool(8) avec l’option -f.
$type_fichier
Insérer le type MIME de média pour le nom de fichier fourni à ipptool(8) avec l’option « -f ».
$nom_hôte
Insérer le nom d’hôte à partir de l’URI fourni à ipptool(8).
$id_travail
Insérer la valeur du dernier identifiant de tâche renvoyée par la réponse d’un test ou 0 si aucun identifiant n’a été trouvé.
$uri_travail
Insérer la dernière valeur de l’attribut de l’URI de travail renvoyée par la réponse d’un test ou une chaîne vide si aucun attribut d’URI n’a été trouvé.
$id_notification_souscription
Insérer la dernière valeur de l’attribut d’identifiant de notification de souscription renvoyée dans une réponse de test ou 0 si aucun attribut n’a été trouvé.
$port
Insérer le numéro du port à partir de l’URI fourni à ipptool(8).
$ressource
Insérer le chemin de ressource à partir de l’URI fourni à ipptool(8).
$schéma
Insérer le schéma depuis l’URI fourni à ipptool(8).
$uri
Insérer l’URI fourni à ipptool(8).
$uri_utilisateur
Insérer l'identifiant à partir de l’URI fourni par ipptool(8), s’il existe.
$utilisateur
Insérer le nom de connexion de l’utilisateur actuel.

VOIR AUSSI

ipptool(1), IANA IPP Registry (https://www.iana.org/assignments/ipp-registrations), PWG Internet Printing Protocol Workgroup (https://www.pwg.org/ipp), RFC 8011 (https://datatracker.ietf.org/doc/html/rfc8011)

COPYRIGHT

Copyright © 2021-2022 by OpenPrinting.

CUPS 2021-09-20