Objectivos
O formato META é utilizado para armazenar e transportar dados de corte e de meia altura do componente RIP (Render) para o componente Printer (Spooler). O formato META deve cumprir os seguintes requisitos:
-
Formato de transporte em fluxo contínuo: permitindo que o componente RIP envie directamente os dados que processa para o componente Impressora que pode começar imediatamente a imprimir sem que o fluxo de dados esteja completo.
-
Formato de loja de acesso aleatório: permitindo que o componente Impressora aninhe múltiplos trabalhos de forma eficiente. Especialmente os ficheiros rotativos necessitam de muito acesso aleatório
-
Compressão: armazenar e transmitir dados comprimidos para utilizar eficientemente a rede e o disco.
-
Formatos abertos: o formato do ficheiro para armazenamento deve utilizar formatos abertos tanto quanto possível para permitir uma fácil reutilização noutros componentes (incluindo componentes externos).
Formato de loja
Os dados META são armazenados numa pasta dentro da pasta de trabalho denominada META. A pasta contém os seguintes ficheiros:
Info.xml |
O ficheiro informativo é um XML que contém todas as propriedades para descrever os dados do trabalho. Contém informações gerais de configuração. Definição das palavras-chave abaixo em “META Job dictionary” (Dicionário de Emprego META) |
00001.xml |
Um dicionário XML que contém a informação da página para a página 1. Definição das palavras-chave abaixo em “META Page dictionary” (dicionário de páginas META) |
00001.bmp |
A pré-visualização da página 1 em formato Windows BMP. A implementação actual é restrita a 24 bits RGB. |
00001.rtl |
Dados em formato HP/RTL a meio-tonelada. Este ficheiro só está disponível para impressoras e não para cortadores. A implementação actual restringe-se às linhas comprimidas RLE intercaladas planares. O número de bits por pixel é limitado a 1, 2, 4 e 8. Ver limites de implementação abaixo: Implementação HP-RTL. |
00001.idx |
Ficheiro índice contendo os offsets por linha no ficheiro *.rtl indicando onde começa o comando Esc *b do primeiro plano/canal dessa linha. Este ficheiro de índice contém ponteiros de 64 bits e é utilizado pelo componente Impressora para obter acesso rápido e aleatório aos dados raster para fins de aninhamento. Este ficheiro é necessário quando estão presentes dados de meio-tom. |
00001.plt |
Comandos de corte em formato HPGL/2. O ficheiro só está disponível para cortadores e dispositivos híbridos. A implementação actual apenas suporta um pequeno subconjunto do documento HPGL/2 abaixo: Implementação do HPGL/2. |
00002.* |
Cada página consiste em pelo menos a página XML com o número da página escrito em 5 dígitos. Os outros ficheiros são opcionais e só são necessários quando são referenciados a partir da página XML. |
Dicionário META Job dictionary
Tag |
Tag |
Descrição |
Emprego |
Dicionário contendo as palavras-chave abaixo |
|
Nome |
Mostrar o nome do trabalho |
|
QueueName |
Nome da fila |
|
UserName |
Nome do utilizador |
|
PrintMode |
Nome do modo de impressão (informativo) |
|
Referência |
Nome do perfil de normalização utilizado (informativo) |
|
Cópias |
Número de cópias a serem produzidas |
|
Páginas |
O número de páginas neste trabalho, só está disponível quando o trabalho é completamente entregue |
|
MediaName |
Nome do tipo de suporte a utilizar (informativo) |
|
MediaSize |
Definição do tamanho do suporte a ser utilizado. Atributos:
|
|
ContentRect |
A área sindicalizada utilizada pela imagem em todas as páginas definidas em Unidade (1/18 polegadas). Esquerda, superior, direita, inferior no formato %f,%%f,%f,f |
|
TrayName |
Nome do tabuleiro a ser utilizado |
|
Coleccionar |
Booleano para indicar cotejo de cópias |
|
DeviceDriver |
Condutor a utilizar |
|
DeviceURL |
URL da ligação ao dispositivo (impressora/cortador), relativamente à localização do spooler |
|
DriverSettings |
Definições do condutor XML usado para criar os dados META |
|
Raster |
Booleano indicando se o trabalho contém dados raster |
|
Vector |
Booleano indicando se o trabalho contém dados vectoriais |
|
Referência |
Perfil de referência utilizado para produzir este trabalho. Apenas presente quando foi utilizado um perfil de referência |
|
Resolução |
Resolução dos dados de imagem neste trabalho em unidades de 1/18 de polegada. A resolução é armazenada nos atributos “X” e “Y |
Dicionário de páginas META
Tag |
Tag |
Tag |
Tag |
Descrição |
Página |
Dicionário contendo as palavras-chave abaixo |
|||
Nome |
Opcional Nome da página ou do azulejo |
|||
MediaSize |
Definição do tamanho do suporte a ser utilizado. Atributos:
|
|||
TrayName |
Nome do tabuleiro a ser utilizado |
|||
ContentRect |
A área sindicalizada utilizada pela imagem em todas as páginas definidas em Unidade (1/18 polegadas). Esquerda, superior, direita, inferior no formato %f,%%f,%f,f |
|||
Alimentação |
Método de alimentação a utilizar após terminar a página. Valores: |
|||
Corte |
Booleano definindo se a máquina deve cortar o material após a impressão/corte |
|||
Raster |
Dicionário que descreve os dados raster/halftone desta página. Atributo “Ficheiro” contém o nome do ficheiro que contém os dados de meio-tom formados RTL. |
|||
Tamanho |
Dimensões dos dados raster/halftone em pixels. Armazenado nos atributos “Largura” e “Altura”. |
|||
Posição |
Posição dos dados raster/halftone em pixels em relação à área imaginável da página. Armazenado nos atributos “X” e “Y |
|||
Tintas |
Dicionário que descreve as tintas por canal / plano. Atributo “Contar” define o número de tintas no dicionário |
|||
Ink |
Descrição do canal de tinta. Attibributo “Nome” define o nome do canal, attibuto “Tamanho dos pontos” define os pesos dos pontos no formato %f,%,… |
|||
Vector |
Atributo “Ficheiro” contém o nome do ficheiro que contém os dados de corte HPGL/2. |
|||
Pré-visualização |
Atributo “Ficheiro” contém o nome do ficheiro que contém a pré-visualização da página. |
A implementação actual exige que os ficheiros referenciados sigam a estrutura do documento acima descrita. Portanto, assume-se que os ficheiros têm o mesmo nome base (nome sem extensão) que a página XML e assume-se que estão ao lado da página XML.
Implementação de HP-RTL
Os seguintes comandos HP-RTL são honrados e são obrigatórios:
-
Esc %0A : Iniciar a HP/RTL na posição actual
-
Esc *p x X : Definir a posição esquerda do raster em pixels
-
Esc *p y Y : Definir a posição superior do raster em pixels
-
Esc *r largura S : Definir largura do raster em pixels
-
Esc *r altura T : Definir altura de raster em pixels
-
Esc *r- contagem de planos U : Definir número de planos / canais de cor
-
Esc *b2M : Seleccionar compressão RLE
-
Esc *r0A : Iniciar dados raster
-
Esc *b byte contagem de bytes V dados : Linha de dados por plano/canal RLE comprimido
-
Esc *b dados de contagem de bytes W : Último plano/canal de dados da linha actual
-
Esc *rC : Fim dos dados raster
-
Esc %0B : Parar os comandos HP-RTL em modo HP-RTL que não estão aqui listados são ignorados.
Implementação do HPGL/2
Existem dois tipos de comandos de corte. Os conjuntos são mutuamente exclusivos. O primeiro conjunto é para a condução de plotters de corte convencionais que são normalmente conduzidos por línguas como HPGL/2. O segundo conjunto é para definir informação de contorno para NC e sistemas de corte de contorno como o i-Cut.
Corte de baixo nível
As coordenadas utilizadas para X e Y são definidas como localizações absolutas em números inteiros na resolução do passo da plotter de corte.
Comando |
Parâmetros |
Descrição |
EM |
Inicializar. Começa a cortar dados |
|
QL |
0 |
Nível de qualidade. Definir a 0 para corte de baixo nível |
SP |
caneta # |
Seleccionar caneta/ferramenta. 1 = faca. 2 = lápis. |
PU |
Levantar a ferramenta |
|
PD |
Baixar a ferramenta |
|
PA |
X, Y |
Movimentar/desenhar/cortar linha para a posição absoluta |
BS |
Início de uma sequência de segmentos de curva |
|
BE |
Fim de uma sequência de segmentos de curva |
|
PG |
Página de avanço. Fim dos dados de corte para esta página |
Corte de alto nível
As coordenadas utilizadas para X e Y são definidas como localizações absolutas em números reais a 18 passos por polegada (=Unidade).
Comando |
Parâmetros |
Descrição |
EM |
Inicializar. Começa a cortar dados |
|
QL |
100 |
Nível de qualidade. Ajustado para 100 para corte de alto nível |
SP |
caneta # |
Seleccionar caneta/ferramenta. 1 = faca. 2 = lápis. |
PC |
caneta #, cor |
Define a cor da ferramenta. Ferramenta 1 = RGB, Ferramenta 2 = CMYK. Valores de cor na gama 0-255. |
PU |
Levantar a ferramenta |
|
PD |
Baixar a ferramenta |
|
PA |
X, Y |
Movimentar/desenhar/cortar linha para a posição absoluta |
BZ |
X1, Y1, X2, Y2, X3, Y3 |
Desenhar/cortar uma curva bezier |
CO |
ID, Valor |
Transmite informação privada específica ao condutor. Tanto o ID como o Valor são números inteiros |
PG |
Página de avanço. Fim dos dados de corte para esta página |
Formato Streaming
O formato de streaming é um fluxo TCP que empacota os ficheiros um após o outro na sequência seguinte:
-
Emprego XML
-
Página XML da página 1
-
Dados RTL (se presentes)
-
Dados de índice (se presentes)
-
Dados HPGL/2 (se presentes)
-
Pré-visualização
-
-
Página XML da página 2
-
etc.
-
Cada ficheiro é enviado como uma sequência de bocados. Os pedaços permitem que o remetente comece a enviar sem ter de saber o tamanho final. O último pedaço de um ficheiro contém um marcador EOF. Cada pedaço segue o seguinte formato no formato i386 (portanto precisa de trocas no PowerPC):
Magia |
Uint32 |
0x4D455441 (‘META’) para verificar a validade da estrutura do pedaço |
Seq. |
Uint32 |
Número de sequência de pedaços. Começa com 0. |
Tipo |
Uint32 |
|
Tamanho |
Uint32 |
Tamanho dos dados a seguir a este pedaço |
Dados |
Se o tipo for 1, então o nome do ficheiro. Um nome vazio indica que foi enviado o último ficheiro. Se o tipo for 2 ou 3, a quantidade de dados especificados por Tamanho é enviada. |