Compartilhar via


Gerenciamento de fontes personalizado

Importante

Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft, juntamente com aplicativos de suporte de impressão (PSA), para personalizar a experiência de impressão em Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

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

Para impressoras PCL , Unidrv dá suporte ao download de fontes suaves como bitmaps ou estruturas de tópicos TrueType. Para fontes de dispositivo, Unidrv dá suporte a 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::D ownloadFontHeader
Usado para obter informações de cabeçalho de uma fonte flexível do Unidrv e, em seguida, baixe as informações para a impressora.

IPrintOemUni::D ownloadCharGlyph
Usado para baixar glifos de caractere 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 de 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 quando envia uma fonte flexível especificada para a impressora.

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 fonte devem ser fornecidas conforme explicado na seção Arquivos de métricas de fonte Unidrv e na seção Arquivos de tabela de tradução de glifo .

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 . Descrições de fonte também podem ser fornecidas na forma de arquivos de formato de fonte Unidrv.

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

Arquivos de Métricas de Fonte Unidrv

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 outras estruturas do arquivo. A figura a seguir mostra o layout de um arquivo de Métricas de Fonte Unidrv.

diagrama ilustrando o layout de um arquivo de métricas de fonte unidrv.

O Unidrv também dá suporte a arquivos .ifi, os arquivos de métricas de fonte criados para Windows NT 4.0.

Arquivos de tabela de tradução de glifo

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

A figura a seguir mostra o layout de um arquivo de tabela de tradução de glifo.

diagrama ilustrando o layout de um arquivo de tabela de tradução de glifo.

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 dá 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 de formato de fonte Unidrv

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 formato de fonte Unidrv (.uff). Além disso, 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 de Formato de Fonte Unidrv.

diagrama ilustrando o layout de um arquivo de formato de fonte unidrv.

Um arquivo de Formato de Fonte Unidrv consiste em uma estrutura de UFF_FILEHEADER e um ou mais pares de estrutura 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 do início do arquivo para a primeira estrutura de UFF_FONTDIRECTORY . Cada estrutura UFF_FONTDRECTORY contém o deslocamento do início do arquivo para 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 é responsabilidade do software de instalação de fonte fornecido pelo fornecedor. Unidrv lê os arquivos .uff de uma impressora para obter informações de fonte e glifo. O instalador de fonte deve modificar o conteúdo do arquivo .uff quando as fontes forem adicionadas ou excluídas. Para obter mais informações sobre como criar um instalador de fonte, consulte Instaladores de fonte personalizados 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 de 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 atuais. As fontes podem ser baixadas ou contidas em um cartucho. Instalador de Fonte
"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 Fonte
"ExtFontCartNames"

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

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

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