Scroll to navigation

ipptoolfile(5) OpenPrinting ipptoolfile(5)

NOME

ipptoolfile - formato de ficheiro do ipptool

DESCRIÇÃO

O programa ipptool(1) aceita ficheiros de texto simples de formato livre que descrevem um ou mais pedidos IPP. Os comentários começam com o caractere "#" e continuam até ao fim da linha. Cada pedido fica rodeado por chavetas, por exemplo:


# This is a comment
{
# The name of the test
NAME "Print PDF File"
# The request to send
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 {
# US Letter plain paper from the "main" tray
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
# The response to expect
STATUS successful-ok
EXPECT job-id OF-TYPE integer WITH-VALUE >0
EXPECT job-uri OF-TYPE uri
}
{
# The name of the test
NAME "Wait for Job to Complete"
# The request to send
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
# The response to expect
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 >5 REPEAT-NO-MATCH
EXPECT job-originating-user-name OF-TYPE name WITH-VALUE "$user"
# Show the job state until completed...
DISPLAY job-state
DISPLAY job-state-reasons
}

DIRECTIVAS DE NÍVEL DE TOPO

As seguintes directivas podem ser usadas fora de um test:

{ test }
Define um teste.
Define a variável nomeada para o valor fornecido. Isto é o equivalente a especificar -d variable-name=value na linha de comandos do ipptool(8).
Define a variável nomeada para o valor fornecido se esta não tiver já um valor.
Especifica uma string identificadora para o ficheiro actual.
Especifica se, por predefinição o ipptool(8) irá ignorar os errors e continuar com os testes subsequentes..
Inclui outro ficheiro de teste. A primeira forma inclui um ficheiro relativo ao ficheiro de teste actual, enquanto a segunda forma inclui um ficheiro do directório de inclusão do ipptool(8).
Inclui outro ficheiro de teste se a variável nomeada estiver definida. A primeira forma inclui um ficheiro relativo ao ficheiro de teste actual, enquanto a segunda forma inclui um ficheiro do directório de inclusão do ipptool(8).
Inclui outro ficheiro de teste se a variável nomeada não estiver definida. A primeira forma inclui um ficheiro relativo ao ficheiro de teste actual, enquanto a segunda forma inclui um ficheiro do directório de inclusão do ipptool(8).
Especifica que o lembrete do ficheiro de teste deve ser saltado quando a variável está ou não está definida.
especifica se os testes devem ser parados após um erro num ficheiro incluído.
Especifica que os teste irão, por predefinição, usar "Transfer-Encoding: chunked" para pedidos com ficheiro anexados e "Content-Length:" para pedidos sem ficheiros anexados.
Especifica que os teste irão, por predefinição, usar o cabeçalho "Transfer-Encoding: chunked" de HTTP/1.1. Esta é a predefinição e é equivalente a especificar -c na linha de comandos do ipptool(8). O suporte para pedidos chunked é necessário para conformidade com todas as versões de IPP.
Especifica que os teste irão, por predefinição, usar o cabeçalho "Content-Length:" de HTTP/1.0. Isto é equivalente a especificar -l na linha de comandos do ipptool(8). O suporte para pedidos content length é necessário para conformidade com todas as versões de IPP.
Especifica o número de versão IPP predefinido a usar para os testes que se seguem:

DIRECTIVAS DE TESTE

As seguintes directivas são compreendidas dentro de um test:

Adiciona um atributo ao pedido de teste. Etiquetas fora-de-banda (admin-define, delete-attribute, no-value, not-settable, unknown, unsupported) não têm valor. Os valores para outras etiquetas são delimitados pelo caractere vírgula (",") - vírgulas escapadas usando o caractere "\". Atributos e valores comuns estão listados no registro IANA IPP - veja referências em baixo.
Adiciona um atributo de coleção ao pedido de teste. Atributos de membro seguem a mesma sintaxe que os atributos regulares e podem eles próprios serem coleções aninhadas. Podem ser fornecidos quando necessário múltiplos valores de coleção separados por vírgulas.
Usa a compressão especificada nos dados do documento seguindo os atributos num pedido Print-Job ou Send-Document.
Specifies a delay in seconds before this test will be run. If two values are specified, the second value is used as the delay between repeated tests. A default repeat interval of 5 seconds is used if this directive is not provided.
Especifica que o valor do atributo nomeado deve fazer parte do resultado do relatório de teste.
Especifica que a resposta deve/pode/deve não inclui o atributo nomeado. Requerimentos adicionais podem ser adicionados como predicados - veja a secção "PREDICADOS DE EXPECT" para mais informação sobre predicados. Os nomes de atributos podem especificar atributos membros ao separar os nomes de atributo e membro com a barra inclinada para frente, por exemplo "media-col/media-size/x-dimension".
Especifica que a resposta deve/pode incluir o atributo nomeado e que todas as ocorrências desse atributo têm de corresponder aos predicados fornecidos.
Especifica um ficheiro a incluir no final do pedido. Isto é usado tipicamente quando se envia um ficheiro de impressão de teste.
Especifica a etiqueta de grupo para atributos subsequentes no pedido.
Especifica se o ipptool(8) irá ignorar erros e continuar com os testes subsequentes.
Especifica os testes de monitorização do estado da impressora a a correr em paralelo com a operação de teste. Os testes de monitorização irão correr até que todas as condições EXPECT estejam satisfeitas ou que a operação de teste principal seja completa, o que ocorrer primeiro.
Especifica o nome humanamente-legível do teste.
Especifica a operação a ser executada.
Especifica que o teste actual deve ser passado automaticamente quando a variável está ou não está definida.
Mostra a mensagem fornecida e espera que o utilizador carregue numa tecla para continuar.
Especifica o valor request-id a usar no pedido, seja um número inteiro ou a palavra "random" para usar um valor gerado aleatoriamente (a predefinição).
Especifica um caminho de recurso alternativo que é usado para o pedido HTTP POST. A predefinição é o recurso do URI fornecido ao programa ipptool(8).
Especifica que o teste actual deve ser saltado quando a variável está ou não está definida.
Especifica se o ipptool(8) irá saltar o teste actual se o teste anterior resultou em erro/falha.
Especifica um valor de código-de-estado da resposta esperada. Requerimentos adicionais podem ser adicionados como predicados - veja a secção "PREDICADOS DE ESTADO" para mais informação sobre predicados.
Especifica uma string de identificação para o teste actual.
Especifica que este teste irá usar "Transfer-Encoding: chunked" se tiver um ficheiro anexado ou "Content-Length:" caso contrário.
Especifica que este teste irá usar o cabeçalho HTTP/1.1 "Transfer-Encoding: chunked".
Especifica que este teste irá usar o cabeçalho HTTP/1.0 "Content-Length:".
Especifica o número de versão IPP a usar para este teste.

PREDICADOS DE EXPECT

Os seguintes predicados são compreendidos pela directiva de teste EXPECT:

Requer que o atributo EXPECT tenha um número especificado de valores.
Define a variável para "1" quando a condição EXPECT corresponde. Um efeito secundário deste predicado é que EXPECT nunca irá falhar um teste.
Define a variável para "1" quando a condição EXPECT não corresponde. Um efeito secundário deste predicado é que EXPECT nunca irá falhar um teste.
Define a variável para o valor do atributo quando a condição EXPECT corresponde. Um efeito secundário deste predicado é que EXPECT nunca irá falhar um teste.
Mostra a mensagem especificada quando a condição EXPECT corresponde.
Faz com que as condições EXPECT sejam aplicadas apenas se a variável especificada esteja definida.
Faz com que as condições EXPECT sejam aplicadas apenas se a variável especificada não esteja definida.
Requer que o atributo EXPECT esteja na etiqueta do grupo especificado.
Requer que o atributo EXPECT use uma das etiquetas de valor especificadas. A maioria das etiquetas de valor também suportam a especificação de limites em parênteses, por exemplo "name(42)" iria permitir strings nameWith/WithoutLanguage até 42 octetos em comprimento, "name(4:MAX)" iria permitir strings nameWith/WithoutLanguage entre 4 e 255 octetos em comprimento, e "integer(-273:MAX)" iria permitir inteiros entre -273 e 2147483647.

Especifica o número máximo de vezes a repetir se o predicado REPEAT-MATCH ou REPEAT-NO-MATCH for especificado. O valor predefinido é 1000.
Especifica que o teste actual deve ser repetido quando a condição EXPECT corresponda ou não corresponda.
Requer que o atributo EXPECT tenha o mesmo número de valores que o atributo paralelo especificado.
Requer que todos os valores URI contenham um nome-de-máquina correspondente.
Requer que todos os valores URI contenham um recurso correspondente (incluindo / inicial).
Requer que todos os valores URI contenham um esquema correspondente.
Requer que todos os valores do atributo EXPECT correspondam literalmente à string. As comparações são sensíveis a maiúsculas/minúsculas.
Requer que todos os valores do atributo EXPECT correspondam aos número(s) ou comparação numérica. Ao comparar valores rangeOfInteger, os operadores "<" e ">" apenas verificam o limite superior do alcance.
Requer que todos os valores do atributo EXPECT correspondam ao valor booleano dado.
Requer que todos os valores do atributo EXPECT correspondam à expressão regular, a qual tem de estar em conformidade com a sintaxe de expressões regulares do POSIX. As comparações são sensíveis a maiúsculas/minúsculas.
Requer que todos os valores do atributo EXPECT sejam únicos. As comparações são sensíveis a maiúsculas/minúsculas. Apenas os atributos charset, collection, enum, integer, keyword, mimeMediaType, naturalLanguage, rangeOfInteger, resolution, uriScheme suportam este predicado.
Requer que pelo menos um dos valores URI contenha um nome-de-máquina correspondente.
Requer que pelo menos um dos valores URI contenha um recurso correspondente (incluindo / inicial).
Requer que pelo menos um dos valores URI contenha um esquema correspondente.
Requer que pelo menos um dos valores do atributo EXPECT corresponda literalmente à string. As comparações são sensíveis a maiúsculas/minúsculas.
Requer que pelo menos um valor do atributo EXPECT corresponda aos número(s) ou comparação numérica. Ao comparar valores rangeOfInteger, os operadores "<" e ">" apenas verificam o limite superior do alcance.
Requer que pelo menos um dos valores do atributo EXPECT corresponda ao valor booleano dado.
Requer que pelo menos um dos valores do atributo EXPECT corresponda à expressão regular, a qual tem de estar em conformidade com a sintaxe de expressões regulares do POSIX. As comparações são sensíveis a maiúsculas/minúsculas.
Requer que os valor(es) do atributo EXPECT correspondam aos valor(es) no atributo especificado. Por exemplo, "EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported" requer que o valor "job-sheets" esteja listado como um valor do atributo "job-sheets-supported".

PREDICADOS DE ESTADOS

Os seguintes predicados são compreendidos pela directiva de teste STATUS:

Define a variável para "1" quando STATUS corresponde. Um efeito secundário deste predicado é que este STATUS nunca irá falhar um teste.
Define a variável para "1" quando STATUS não corresponde. Um efeito secundário deste predicado é que este STATUS nunca irá falhar um teste.
Faz com que STATUS seja aplicado apenas se a variável especificada estiver definida.
Faz com que STATUS seja aplicado apenas se a variável especificada não estiver definida.

Especifica o número máximo de vezes a repetir. O valor predefinido é 1000.
Especifica que o teste actual deve ser repetido quando a resposta do código de estado corresponde ou não corresponde ao valor especificado pela directiva STATUS.

CÓDIGOS DE OPERAÇÃO

Códigos de operação correspondem aos números hexadecimais (0xHHHH) e nomes de RFC 8011 e outras especificações da extensão IPP. Aqui está uma lista completa dos nomes suportados pelo 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

CÓDIGOS DE ESTADO

Códigos de estado correspondem aos números hexadecimais (0xHHHH) e nomes de RFC 8011 e outras especificações da extensão IPP. Aqui está uma lista completa dos nomes suportados pelo 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

ETIQUETAS

Etiquetas de valor e grupo correspondem aos nomes de RFC 8011 e outras especificações da extensão IPP. Aqui estão as etiquetas de grupo:


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

Aqui estão as etiquetas de valor:


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

VARIÁVEIS

O programa ipptool(8) mantém uma lista de variáveis que podem ser usadas em qualquer string literal ou valor de atributo ao especificar "$variable-name". à parte das variáveis definidas usando a opção -d ou a directiva DEFINE, as seguintes variáveis pré-definidas estão disponíveis:

$$
Insere um único caractere "$".
$ENV[name]
Insere o valor da variável de ambiente nomeada, ou uma string vazia se a variável de ambiente não estiver definida.
$date-current
Insere a data e hora actuais usando o formato ISO-8601 ("yyyy-mm-ddThh:mm:ssZ").
$date-start
Insere a data e hora iniciais usando o formato ISO-8601 ("yyyy-mm-ddThh:mm:ssZ").
$filename
Insere o nome de ficheiro fornecido ao ipptool(8) com a opção -f.
$filetype
Insere o tipo de media MIME para o nome de ficheiro fornecido ao ipptool(8) com a opção -f.
$hostname
Insere o nome-de-máquina a partir do URI fornecido ao ipptool(8).
$job-id
Insere último valor do atributo "job-id" retornado numa resposta de teste ou 0 se nenhum atributo "job-id" foi visto.
$job-uri
Insere último valor do atributo "job-uri" retornado numa resposta de teste ou uma string vazia se nenhum atributo "job-uri" foi visto.
$notify-subscription-id
Insere último valor do atributo "notify-subscription-id" retornado numa resposta de teste ou 0 se nenhum atributo "notify-subscription-id" foi visto.
$port
Insere o número de porto a partir do URI fornecido ao ipptool(8).
$resource
Inserts the resource path from the URI provided to ipptool(8).
$scheme
Insere o esquema a partir do URI fornecido ao ipptool(8).
$uri
Insere o URI fornecido para ipptool(8).
$uriuser
Insere o nome-de-utilizador a partir do URI fornecido ao ipptool(8). Se algum.
$user
Insere o nome de login do utilizador actual.

VEJA TAMBÉM

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-2023 by OpenPrinting.

CUPS 2021-09-20