Partilhar via


Criando um arquivo GPD PCL XL

Importante

A plataforma de impressão moderna é o meio preferido do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

Para obter mais informações, consulte Plataformade impressão moderna e o Guia de design do aplicativo de suporte de impressão.

Esta seção fornece informações gerais sobre como gravar um arquivo GPD PCL XL, como quais arquivos seu arquivo GPD deve incluir, como habilitar o PCL XL em seu arquivo GPD e como ordenar comandos PCL XL em um fluxo PCL XL.

O WDK (Windows Driver Kit) contém um arquivo GPD PCL XL de exemplo (p6sample.gpd) no diretório \src\print\mini\mdw\vector\pcl6. (Este recurso pode não estar disponível em alguns idiomas e países.)

Arquivos a incluir

Para escrever um minidriver baseado em GPD, use a diretiva de pré-processador *Include para especificar os seguintes arquivos GPD:

pclxl.gpd -- contém macros para os operadores PCL XL para que você possa escrever código GPD mais fácil de ler e entender. Por exemplo, você pode escrever =BeginPage em vez de <43>.

p6disp.gpd -- contém macros para strings de recursos contidas em pcl5eres.dll e pclxl.dll.

p6font.gpd -- contém macros para fontes contidas em pclxl.dll.

pjl.gpd -- contém macros para comandos PJL.

Além dos arquivos anteriores, inclua os arquivos GPD padrão, stdnames.gpd e ttfsub.gpd.

O exemplo a seguir mostra como esses arquivos seriam incluídos em um arquivo GPD.

*Include: stdnames.gpd
*Include: ttfsub.gpd
*Include: pclxl.gpd
*Include: p6disp.gpd
*Include: p6font.gpd
*Include: pjl.gpd

Habilitando o suporte a PCL XL no arquivo GPD

Para habilitar o suporte ao vetor PCL XL, você só precisa definir o atributo *Personality. Isso é feito da seguinte maneira:

*Personality: = PERSONALITY_PCLXL

A constante PERSONALITY_PCLXL é definida em stdnames.gpd.

Um arquivo GPD de exemplo, p6sample.gpd, está incluído no WDK para ajudar os desenvolvedores a criar novos minidrivers PCL XL.

Ordenação de comandos PCL XL

A ordem dos comandos é mais crítica no PCL XL do que no PCL-5. Um pequeno erro no fluxo PCL provavelmente não afetará o trabalho, mas os comandos PCL XL são válidos apenas em determinados pontos do fluxo, portanto, qualquer erro no PCL XL (PCL-6) faz com que uma página de erro XL seja emitida. Por exemplo, você não pode enviar um operador BeginPage antes de enviar um operador BeginSession.

Um fluxo PCL XL tem uma forma semelhante à seguinte. (O recuo mostrado é usado apenas para enfatizar o ponto de que esses operadores vêm em pares.)

PJL commands
BeginSession
  OpenDataSource
    BeginPage
      <page data>
    EndPage
  CloseDataSource
EndSession
PJL commands

O fluxo PCL XL é precedido e seguido por comandos PJL. O próprio fluxo PCL XL começa com um operador BeginSession e termina com um operador EndSession. Dentro desse par de operadores, há outro par de operadores: OpenDataSource e CloseDataSource. Dentro desse par de operadores, vêm um ou mais pares de operadores BeginPage/EndPage, um par para cada página enviada à impressora. Os dados da página, que descrevem como uma página individual é renderizada, são agrupados por um par de operadores BeginPage/EndPage.

Para obter informações detalhadas sobre todos os operadores PCL XL, consulte a documentação do Protocolo de Referência de Recursos PCL XL Classe 2.0 .

Informações adicionais sobre os arquivos GPD PCL XL

Nos arquivos GPD PCL XL, o nome do atributo *FontFormat, que especifica a maneira como as fontes são baixadas, é restrito a dois valores: HPPCL_OUTLINE e HPPCL_RES. O primeiro valor indica que o Unidrv deve baixar dados de estrutura de tópicos TrueType. O segundo valor indica que Unidrv deve baixar dados de fonte flexível de bitmap.

Um IHV pode diminuir o uso de memória da impressora limitando o número de fontes a serem baixadas ou limitando o número de caracteres a serem baixados em uma determinada fonte. Os nomes de atributo *MinFontID e *MaxFontID são usados para informar a Unidrv para baixar fontes flexíveis cujas IDs estão dentro do intervalo especificado por esses valores. Da mesma forma, os nomes de atributo *MinGlyphID e *MaxGlyphID são usados para limitar o número de glifos em uma determinada fonte a serem baixados para aqueles dentro de um intervalo específico.

O Unidrv opera sob a suposição de que cada arquivo GPD contém sua própria matriz de pontilhamento. Também é recomendável que cada dispositivo tenha sua própria matriz de pontilhamento. A matriz de pontilhamento é especificada em um recurso personalizado *Feature: Dither.