Compartilhar via


Gerenciamento de fontes personalizado

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.

Para impressoras PCL, o Unidrv suporta o download de fontes suaves como bitmaps ou contornos TrueType. Para fontes de dispositivo, o Unidrv suporta os formatos de comando de impressora PCL, CAPSL e PPDS. Para outros formatos, o código de gerenciamento de fontes personalizado deve ser fornecido em um plug-in de renderização. O seguinte conjunto de métodos IPrintOemUni pode ser implementado:

IPrintOemUni::DownloadFontHeader
Usado para obter as informações do cabeçalho de uma fonte flexível do Unidrv e, em seguida, baixar as informações para a impressora.

IPrintOemUni::DownloadCharGlyph
Usado para baixar os glifos de caracteres de uma fonte flexível para a impressora.

IPrintOemUni::OutputCharStr
Usado para controlar a impressão de caracteres.

IPrintOemUni::SendFontCmd
Usado para modificar o comando de seleção de fonte do dispositivo de uma impressora e, se necessário, enviá-lo para a impressora.

IPrintOemUni::TextOutAsBitmap
Usado para criar uma imagem de bitmap de uma cadeia de caracteres de texto.

IPrintOemUni::TTDownloadMethod
Usado para especificar o formato de glifo que o Unidrv deve usar ao enviar uma fonte flexível especificada para a impressora.

O Unidrv fornece uma função de retorno de chamada, UNIFONTOBJGetInfo, que os plug-ins de renderização podem chamar para obter informações de fonte ou glifo.

Para fontes de dispositivo, as descrições de fontes devem ser fornecidas conforme explicado na seção Arquivos de métricas de fonte Unidrv e na seção Arquivos de tabela de conversão de glifos.

Para fontes de cartucho, as descrições de fonte podem ser fornecidas em DLLs de recurso e especificadas usando entradas de cartuchos de fonte em um arquivo GPD. As descrições de fontes também podem ser fornecidas na forma de arquivos de formato de fonte Unidrv.

Para fontes suaves PCL para download, as descrições das fontes devem ser fornecidas conforme explicado na seção Arquivos de formato de fonte Unidrv.

Arquivos Unidrv Font Metrics

Cada fonte de dispositivo compatível com uma impressora representa um arquivo Unidrv Font Metrics (.ufm). Um arquivo .ufm é um arquivo binário construído usando as estruturas descritas em Estruturas de métricas de fonte Unidrv. A primeira estrutura em um arquivo .ufm é UNIFM_HDR, que contém deslocamentos para as outras estruturas do arquivo. A figura a seguir mostra o layout de um arquivo Unidrv Font Metrics.

Diagrama que ilustra o layout de um arquivo de métricas de fonte Unidrv.

O Unidrv também suporta arquivos .ifi, os arquivos de métricas de fonte criados para o Windows NT 4.0.

Arquivos de tabela de conversão de glifo

Cada fonte de dispositivo compatível com uma impressora representa um arquivo .gtt (Tabela de Conversão de Glifos). Um arquivo .gtt é um arquivo binário construído usando as estruturas descritas em Estruturas de tabela de conversão de glifo Unidrv. A primeira estrutura em um arquivo .gtt é uma estrutura UNI_GLYPHSETDATA, que contém deslocamentos para as outras estruturas do arquivo.

A figura a seguir mostra o layout de um arquivo de tabela de conversão de glifos.

Diagrama que ilustra o layout de um arquivo de tabela de conversão de glifos.

Na figura anterior, a estrutura UNI_GLYPHSETDATA contém os deslocamentos do início do arquivo para a primeira estrutura GLYPHRUN , para a primeira estrutura UNI_CODEPAGEINFO e para a estrutura MAPTABLE.

O Unidrv também oferece suporte a arquivos de tradução de glifo criados para Windows NT 4.0, que usam compactação RLE (codificação de comprimento de execução) e têm uma extensão .rle.

Arquivos Unidrv Font Format

Para fontes de cartucho que não são especificadas usando entradas de cartuchos de fonte em um arquivo GPD, as fontes devem ser descritas em um arquivo Unidrv Font Format (.uff). Além disso, as fontes suaves PCL para download devem ser especificadas usando um arquivo .uff.

Um arquivo .uff é um arquivo binário construído usando os seguintes conjuntos de estruturas:

A figura a seguir mostra o layout de um arquivo Unidrv Font Format.

Diagrama que ilustra o layout de um arquivo de formato de fonte Unidrv.

Um arquivo Unidrv Font Format consiste em uma estrutura UFF_FILEHEADER e um ou mais pares de estruturas UFF_FONTDIRECTORY e DATA_HEADER. Cada estrutura DATA_HEADER está associada a um bloco de dados de fonte. A estrutura UFF_FILEHEADER contém o deslocamento desde o início do arquivo até a primeira estrutura UFF_FONTDIRECTORY. Cada estrutura UFF_FONTDRECTORY contém o deslocamento desde o início do arquivo até uma estrutura DATA_HEADER que contém dados de fonte.

Além disso, para fontes suaves PCL para download, os dados binários a serem baixados são armazenados em um arquivo .uff.

A criação de arquivos .uff é de responsabilidade do software de instalação de fontes fornecido pelo fornecedor. O Unidrv lê os arquivos .uff de uma impressora para obter informações de fonte e glifo. O instalador de fontes deve modificar o conteúdo do arquivo .uff quando as fontes são adicionadas ou excluídas. Para obter mais informações sobre como criar um instalador de fontes, consulte Instaladores de fontes personalizadas para Unidrv.

Todos os arquivos .uff devem ser armazenados no diretório %SystemRoot%\System32\Spool\Drivers\Unifont. Para associar arquivos .uff individuais a impressoras específicas, o software de instalação deve chamar a função SetPrinterData (descrita na documentação do SDK do Windows) para criar valores do Registro na chave do Registro de cada impressora. A tabela a seguir lista os nomes de valor do Registro que devem ser usados e indica o mantenedor de cada valor.

Nome e tipo do valor do Registro Definição de valor Mantenedor
"ExternalFontFile"

REG_SZ
Nome de arquivo de um arquivo .uff que especifica as fontes instaladas no momento. As fontes podem ser baixadas ou contidas em um cartucho. Instalador de fontes
"ExtFontCartFile"

REG_SZ
Nome de arquivo de um arquivo .uff que especifica todas as fontes contidas em todos os cartuchos de fonte listados para "ExtFontCartNames". Instalador de fontes
"ExtFontCartNames"

REG_MULTI_SZ
Nomes de todos os cartuchos de fonte que podem ser instalados na impressora. Instalador de fontes
"FontCart"

REG_MULTI_SZ
Nomes de todos os cartuchos de fonte atualmente instalados para a impressora. Interface de usuário do Unidrv

Depois de adicionar um cartucho de fonte a uma impressora, o administrador do sistema deve executar o instalador de fontes, que é responsável por copiar as descrições de fontes do arquivo .uff especificado por "ExtFontCartFile" para o arquivo .uff especificado por "ExternalFontFile". Da mesma forma, o instalador de fontes deve remover as descrições de fontes do arquivo .uff especificado por "ExtFontCartFile" quando um cartucho é removido.