Partilhar via


Gerenciamento de fontes personalizado

Importante

A moderna plataforma de impressão é o meio preferido do Windows para comunicar com as impressoras. Recomendamos que utilize o controlador de classe da caixa de entrada IPP da Microsoft, juntamente com as Aplicações de Suporte de Impressão (PSA), 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 Guia de design do aplicativo de suporte de impressão v1 e v2.

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::D ownloadFontHeader
Usado para obter informações de cabeçalho de uma fonte flexível da Unidrv e, em seguida, baixar as informações para a impressora.

IPrintOemUni::D ownloadCharGlyph
Usado para baixar glifos de caracteres de uma fonte suave 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 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.

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 de métricas de fonte Unidrv e na seção de arquivos de tabela de tradução de glifos .

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

Para fontes de software PCL descarregáveis, as descrições de fontes devem ser fornecidas conforme explicado na seção sobre arquivos de formato de fonte Unidrv.

Arquivos Unidrv Font Metrics

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

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

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

Arquivos da tabela de tradução do glifo

Cada fonte de dispositivo suportada por uma impressora representa um arquivo Glyph Translation Table (.gtt). Um arquivo .gtt é um arquivo binário que é construído usando as estruturas descritas em Unidrv Glyph Translation Table Structures. A primeira estrutura em um ficheiro .gtt é uma estrutura UNI_GLYPHSETDATA, que contém deslocamentos para outras estruturas do ficheiro.

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

Diagrama ilustrando o layout de um arquivo de tabela de tradução de glifos.

Na figura apresentada, a estrutura UNI_GLYPHSETDATA contém os deslocamentos desde o início do arquivo até a primeira estrutura GLYPHRUN, até a primeira estrutura UNI_CODEPAGEINFO, e até a estrutura MAPTABLE.

Unidrv também suporta arquivos de tradução de glifos criados para o Windows NT 4.0, que utilizam compactação por codificação de comprimento de execução (RLE) e têm a terminaçã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 de formato de fonte Unidrv (.uff). Além disso, as fontes flexíveis PCL para download devem ser especificadas usando um arquivo .uff.

Um arquivo .uff é um arquivo binário que é 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 Unidrv Font Format consiste em uma estrutura 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 a partir do início do ficheiro até à primeira estrutura UFF_FONTDIRECTORY. Cada estrutura UFF_FONTDRECTORY contém o deslocamento do início do arquivo para uma estrutura de DATA_HEADER que contém dados de fonte.

Além disso, para fontes de PCL descarregáveis, os dados binários a serem transferidos são armazenados num 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 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 do Registro sob a 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 do arquivo .uff que especifica as fontes instaladas atualmente. As fontes podem ser baixadas ou contidas em um cartucho. Instalador de fontes
"ExtFontCartFile"

REG_SZ
Nome do 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 poderiam ser instalados na impressora. Instalador de fontes
Carrinho de Fontes

REG_MULTI_SZ
Nomes de todos os cartuchos de fonte atualmente instalados para a impressora. Interface de usuário 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 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 descrições de fontes do arquivo .uff especificado por "ExtFontCartFile" quando um cartucho é removido.