Formato META2

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:

  • Nome : Nome do tamanho do meio

  • Largura : Largura física do suporte em unidades (1/18 polegadas)

  • Comprimento : Comprimento físico dos meios em unidades

  • Rolo : rolo ou folha indicativa booleana

  • Transverso : Booleano indicando orientação

  • Margens: Esquerda, superior, direita, inferior margens não imprimíveis no formato %f,%%f,%f,f

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:

  • Nome : Nome do tamanho do meio

  • Largura : Largura física do suporte em unidades (1/18 polegadas)

  • Comprimento : Comprimento físico dos meios em unidades

  • Rolo : rolo ou folha indicativa booleana

  • Transverso : Booleano indicando orientação

  • Margens: Esquerda, superior, direita, inferior margens não imprimíveis no formato %f,%%f,%f,f

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

  1. Início do ficheiro

  2. Dados

  3. Últimos dados

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.