Fonts

Fonts

Panduan ini menunjukkan cara memeriksa font yang dirujuk dalam sebuah dokumen, mengekstrak data font yang tertanam, dan mengontrol TrueType penyematan font saat menyimpan dengan Aspose.Words FOSS untuk .NET. Aspose.Words FOSS untuk .NET melacak setiap font yang dirujuk oleh dokumen yang dimuat melalui FontInfoCollection, dan mengekspos metadata per-font, ekstraksi font tertanam, serta kontrol penyematan saat menyimpan melalui FontInfo. Document.FontSettings dan LoadOptions.FontSettings menyediakan titik masuk FontSettings (yang sengaja minimal, dalam edisi ini).


Memeriksa Font yang Digunakan dalam Dokumen

DocumentBase.FontInfos (diturunkan oleh Document) mengembalikan sebuah FontInfoCollection yang menjelaskan setiap font yang dirujuk di mana saja dalam dokumen. Indeks ke dalamnya dengan nama (mis. fontInfos["Arial"]), uji keberadaannya dengan Contains(name), hitung mereka dengan Count, atau daftarkan seluruh koleksi melalui GetEnumerator().


Properti Font dan Klasifikasi

Setiap FontInfo menggambarkan satu font: Name dan AltName mengidentifikasinya, Family mengklasifikasikannya melalui enum FontFamily (Auto, Roman, Swiss, Modern, Script, Decorative), Pitch melaporkan FontPitch-nya (Default, Fixed, Variable), dan IsTrueType, Charset, serta Panose mengekspos data pencocokan font tingkat rendah.


Ekstraksi Font Tertanam

Jika sebuah dokumen memiliki font yang disematkan, FontInfo.GetEmbeddedFont(format, style) mengembalikan byte font yang disematkan mentah untuk EmbeddedFontFormat tertentu (EmbeddedOpenType atau OpenType) dan EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic). GetEmbeddedFontAsOpenType(style) mengembalikan font yang dikonversi ke format OpenType secara langsung, terlepas dari bagaimana font tersebut awalnya disematkan.


Hak Lisensi Penyematan Font

Sebelum mengekstrak atau menyematkan kembali sebuah font, periksa FontInfo.EmbeddingLicensingRights, sebuah objek FontEmbeddingLicensingRights. EmbeddingUsagePermissions melaporkan tingkat lisensi melalui enum FontEmbeddingUsagePermissions (Installable, RestrictedLicense, PrintAndPreview, Editable), sementara NoSubsetting dan BitmapEmbeddingOnly menandai pembatasan lebih lanjut yang ditetapkan oleh vendor font.


Mengendalikan Penyematan Font saat Menyimpan

FontInfoCollection juga membawa saklar penyematan tingkat dokumen: setel EmbedTrueTypeFonts ke true untuk menyematkan setiap font TrueType yang digunakan dalam dokumen saat disimpan, EmbedSystemFonts untuk menyertakan font yang biasanya diasumsikan ada di sistem mana pun, dan SaveSubsetFonts untuk menyematkan hanya glif yang benar-benar digunakan alih-alih seluruh font.


Lingkup FontSettings dalam Edisi Ini

Document.FontSettings dan LoadOptions.FontSettings keduanya mengembalikan objek FontSettings, dan FontSettings.DefaultInstance mengekspos sebuah instance default bersama. Dalam edisi FOSS ini, permukaan FontSettings’ API terbatas pada properti instance default tersebut — resolusi sumber font berbasis folder dan sistem, yang di tempat lain dalam Aspose.Words digunakan untuk mengganti atau menyelesaikan font bagi tata letak halaman dan rendering, tidak ada, karena tata letak halaman dan rendering berada di luar lingkup edisi ini. Penanganan font di sini berarti inspeksi metadata dan penyematan, bukan substitusi font untuk rendering.


Tips dan Praktik Terbaik

  • Selalu periksa FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions sebelum mengekstrak atau mendistribusikan kembali font yang disematkan — beberapa font hanya dilisensikan RestrictedLicense atau PrintAndPreview saja.
  • Gunakan GetEmbeddedFontAsOpenType() ketika Anda memerlukan format output yang konsisten terlepas dari cara dokumen sumber menyematkan font (EmbeddedOpenType vs OpenType).
  • Atur FontInfoCollection.SaveSubsetFonts menjadi true untuk mengurangi ukuran file output saat menyematkan font yang hanya menggunakan beberapa glyph.
  • FontInfoCollection.Contains(name) lebih murah daripada mengindeks dan menangani pencarian yang gagal (misalnya fontInfos[name]) ketika Anda hanya perlu menguji keberadaan sebuah font.

Masalah Umum

MasalahPenyebabPerbaikan
GetEmbeddedFont() tidak mengembalikan data yang dapat digunakanFont yang dirujuk sebenarnya tidak tertanam dalam dokumenPeriksa pengaturan penyematan dokumen sebelum mengasumsikan data font ada
Pengindeksan ke FontInfoCollection berdasarkan nama tidak menemukan apa-apaNama font tidak cocok secara tepat, termasuk huruf besar/kecilEnumerasi FontInfoCollection dengan GetEnumerator() untuk mengonfirmasi string Name yang tepat
API substitusi/penyelesaian font yang diharapkan tidak adaResolusi sumber font berbasis folder dan sistem tidak diimplementasikan dalam edisi FOSS iniGunakan FontInfo/FontInfoCollection hanya untuk metadata dan penyematan; substitusi font untuk rendering tidak termasuk dalam ruang lingkup edisi ini

FAQ

Bagaimana cara saya mendaftar semua font yang direferensikan oleh sebuah dokumen?

Enumerasikan Document.FontInfos (sebuah FontInfoCollection) melalui GetEnumerator(), atau indeks ke dalamnya dengan nama untuk mencari yang spesifik (misalnya fontInfos["Arial"]).

Bisakah saya mengambil byte mentah dari font yang disematkan keluar dari dokumen?

Ya, jika font disematkan — panggil FontInfo.GetEmbeddedFont(format, style) untuk format penyematan asli, atau GetEmbeddedFontAsOpenType(style) untuk menormalkan hasil ke OpenType.

Bagaimana cara memastikan font disematkan saat saya menyimpan dokumen?

Setel FontInfoCollection.EmbedTrueTypeFonts ke true sebelum menyimpan; tambahkan EmbedSystemFonts jika Anda juga memerlukan font yang diasumsikan ada di sistem mana pun, dan SaveSubsetFonts untuk menyematkan hanya glif yang digunakan.

Apakah edisi ini mendukung resolusi font dari folder khusus untuk rendering?

Tidak — resolusi sumber font berbasis folder dan sistem (FontSettings konfigurasi sumber) tidak diimplementasikan di sini, karena ada untuk melayani tata letak halaman dan rendering, yang berada di luar ruang lingkup edisi FOSS ini.

Apa arti FontEmbeddingLicensingRights.NoSubsetting?

Itu adalah flag lisensi yang dilaporkan oleh hak penyematan vendor font: ketika true, font tidak boleh dipotong menjadi hanya glif yang digunakan.


API Reference Ringkasan

Kelas / MetodeDeskripsi
FontInfoCollectionFont yang direferensikan dalam sebuah dokumen; pengindeks berdasarkan nama (fontInfos[name]), Contains(), Count, GetEnumerator(), plus EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoMetadata satu font: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()Ekstrak byte font yang disematkan
EmbeddedFontFormat / EmbeddedFontStyleEnum yang mengidentifikasi format dan varian gaya font yang disematkan
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsPembatasan lisensi penyematan yang dilaporkan per font
FontSettingsTitik masuk minimal pengaturan font (Document.FontSettings, LoadOptions.FontSettings); tidak ada resolusi sumber font dalam edisi ini

Lihat Juga

 Bahasa Indonesia