Bagikan melalui


Manajemen font yang dikustomisasi

Penting

Kami menyarankan agar Anda menggunakan driver kelas kotak masuk IPP Microsoft, bersama dengan Print Support Apps (PSA), untuk menyesuaikan pengalaman cetak di Windows 10 dan 11 untuk pengembangan perangkat printer.

Untuk informasi selengkapnya, lihat Panduan desain aplikasi dukungan cetak.

Untuk printer PCL , Unidrv mendukung pengunduhan font lunak sebagai bitmap atau kerangka TrueType. Untuk font perangkat, Unidrv mendukung format perintah printer PCL, CAPSL, dan PPDS. Untuk format lain, kode manajemen font yang disesuaikan harus disediakan dalam plug-in penyajian. Set metode IPrintOemUni berikut dapat diimplementasikan:

IPrintOemUni::D ownloadFontHeader
Digunakan untuk mendapatkan informasi header font lunak dari Unidrv lalu mengunduh informasi ke pencetak.

IPrintOemUni::D ownloadCharGlyph
Digunakan untuk mengunduh glyph karakter font lunak ke printer.

IPrintOemUni::OutputCharStr
Digunakan untuk mengontrol pencetakan karakter.

IPrintOemUni::SendFontCmd
Digunakan untuk mengubah perintah pemilihan fonta perangkat printer, dan jika perlu, kirimkan ke pencetak.

IPrintOemUni::TextOutAsBitmap
Digunakan untuk membuat gambar bitmap dari string teks.

IPrintOemUni::TTDownloadMethod
Digunakan untuk menentukan format glyph yang harus digunakan Unidrv ketika mengirim font lunak yang ditentukan ke printer.

Unidrv menyediakan fungsi panggilan balik, UNIFONTOBJGetInfo, yang merender plug-in dapat memanggil untuk mendapatkan informasi font atau glyph.

Untuk font perangkat, deskripsi font harus disediakan seperti yang dijelaskan di bagian file metrik font Unidrv dan bagian file tabel terjemahan Glyph .

Untuk font kartrid, deskripsi font dapat disediakan dalam DLL sumber daya dan ditentukan menggunakan entri kartrid font dalam file GPD . Deskripsi font juga dapat disediakan dalam bentuk file format font Unidrv.

Untuk font lunak PCL yang dapat diunduh, deskripsi font harus disediakan seperti yang dijelaskan di bagian file format font Unidrv .

File Metrik Font Unidrv

Setiap font perangkat yang didukung printer mewakili file Unidrv Font Metrics (.ufm). File .ufm adalah file biner yang dibangun menggunakan struktur yang dijelaskan dalam Struktur Metrik Font Unidrv. Struktur pertama dalam file .ufm adalah UNIFM_HDR, yang berisi offset ke struktur file lainnya. Gambar berikut menunjukkan tata letak file Metrik Font Unidrv.

diagram yang mengilustrasikan tata letak file metrik font unidrv.

Unidrv juga mendukung file .ifi, file metrik font yang dibuat untuk Windows NT 4.0.

File Tabel Terjemahan Glyph

Setiap font perangkat yang didukung printer mewakili file Glyph Translation Table (.gtt). File .gtt adalah file biner yang dibangun menggunakan struktur yang dijelaskan dalam Struktur Tabel Terjemahan Unidrv Glyph. Struktur pertama dalam file .gtt adalah struktur UNI_GLYPHSETDATA , yang berisi offset ke struktur file lainnya.

Gambar berikut menunjukkan tata letak file tabel terjemahan glyph.

diagram yang mengilustrasikan tata letak file tabel terjemahan glyph.

Pada gambar sebelumnya, struktur UNI_GLYPHSETDATA berisi offset dari awal file ke struktur GLYPHRUN pertama, ke struktur UNI_CODEPAGEINFO pertama, dan ke struktur MAPTABLE .

Unidrv juga mendukung file terjemahan glyph yang dibuat untuk Windows NT 4.0, yang menggunakan kompresi run-length encoding (RLE) dan memiliki ekstensi .rle.

File Format Font Unidrv

Untuk font kartrid yang tidak ditentukan menggunakan entri kartrid font dalam file GPD, font harus dijelaskan dalam file Unidrv Font Format (.uff). Selain itu, font lunak PCL yang dapat diunduh harus ditentukan menggunakan file .uff.

File .uff adalah file biner yang dibangun menggunakan kumpulan struktur berikut:

Gambar berikut ini memperlihatkan tata letak file Format Font Unidrv.

diagram yang mengilustrasikan tata letak file format font unidrv.

File Format Font Unidrv terdiri dari struktur UFF_FILEHEADER , dan satu atau beberapa pasangan struktur UFF_FONTDIRECTORY dan DATA_HEADER . Setiap struktur DATA_HEADER dikaitkan dengan blok data font. Struktur UFF_FILEHEADER berisi offset dari awal file ke struktur UFF_FONTDIRECTORY pertama. Setiap struktur UFF_FONTDRECTORY berisi offset dari awal file ke struktur DATA_HEADER yang berisi data font.

Selain itu, untuk font lunak PCL yang dapat diunduh, data biner yang akan diunduh disimpan dalam file .uff.

Pembuatan file .uff adalah tanggung jawab perangkat lunak penginstalan font yang disediakan vendor. Unidrv membaca file .uff printer untuk mendapatkan informasi font dan glyph. Penginstal font harus mengubah konten file .uff ketika font ditambahkan atau dihapus. Untuk informasi selengkapnya tentang membuat penginstal font, lihat Alat Penginstal Font Yang Disesuaikan untuk Unidrv.

Semua file .uff harus disimpan di direktori %SystemRoot%\System32\Spool\Drivers\Unifont. Untuk mengaitkan file .uff individual dengan printer tertentu, perangkat lunak penginstalan harus memanggil fungsi SetPrinterData (dijelaskan dalam dokumentasi Windows SDK) untuk membuat nilai registri di bawah setiap kunci registri printer. Tabel berikut mencantumkan nama nilai registri yang harus digunakan, dan menunjukkan pemeliharaan setiap nilai.

Nama dan jenis nilai registri Definisi nilai Pengelola
"ExternalFontFile"

REG_SZ
Nama file dari file .uff yang menentukan font yang terinstal saat ini. Font dapat diunduh atau terkandung dalam kartrid. Penginstal Font
"ExtFontCartFile"

REG_SZ
Nama file .uff yang menentukan semua font yang terkandung dalam semua kartrid font yang tercantum untuk "ExtFontCartNames". Penginstal Font
"ExtFontCartNames"

REG_MULTI_SZ
Nama semua kartrid fonta yang mungkin bisa diinstal pada pencetak. Penginstal Font
"FontCart"

REG_MULTI_SZ
Nama semua kartrid fonta yang saat ini terinstal untuk pencetak. Antarmuka pengguna Unidrv

Setelah Anda menambahkan kartrid font ke printer, administrator sistem harus menjalankan penginstal font, yang bertanggung jawab untuk menyalin deskripsi font dari file .uff yang ditentukan oleh "ExtFontCartFile" ke dalam file .uff yang ditentukan oleh "ExternalFontFile". Demikian juga, penginstal font harus menghapus deskripsi font dari file .uff yang ditentukan oleh "ExtFontCartFile" ketika kartrid dihapus.