Pro edisi
Font Tools
Sekilas pandang
Bagian berjudul “Sekilas pandang”NextPDF Pro memeriksa program fon tertanam, mengidentifikasi fon subset berdasarkan konvensi penamaan standarnya, dan menghasilkan rencana de-subsetting terstruktur dengan estimasi dampak ukuran.
Ketersediaan & lisensi
Bagian berjudul “Ketersediaan & lisensi”Kapabilitas ini disertakan dalam NextPDF Pro (nextpdf/pro) dan aktif dengan amplop lisensi tingkat Pro. Deployment tanpa entitlement tersebut tidak memuat kelas-kelas kapabilitas ini. Bandingkan edisi dan dapatkan lisensi.
Tidak ada flag lisensi per-fitur yang menggerbangi modul ini. Kelas-kelas Font Tools tersedia kapan pun nextpdf/pro terpasang.
Pemasangan
Bagian berjudul “Pemasangan”composer require nextpdf/pro:^3Tinjauan konseptual
Bagian berjudul “Tinjauan konseptual”Fon subset dalam sebuah PDF hanya menanamkan glyph yang digunakan dokumen. Berdasarkan konvensi, nama /BaseFont-nya membawa tag enam huruf kapital diikuti +, misalnya ABCDEF+Arial. NextPDF Pro:
- Mendeteksi subset.
FontDesubsettermemindai data PDF mentah untuk entri/BaseFont, mengenali pola prefiks subset, dan melaporkan setiap entri sebagai objek nilaiSubsetInfodengan nama keluarga asli, jumlah glyph subset, jumlah glyph penuh, dan pengodean. - Merencanakan de-subsetting.
DesubsetPlanmengumpulkan fon subset yang ditargetkan untuk diganti dengan program fon penuh dan melaporkan estimasi kenaikan ukuran-byte, sehingga Anda dapat memutuskan apakah de-subsetting sepadan dengan biaya ukuran-berkas sebelum bertindak.
Font Tools adalah lapisan analisis dan perencanaan. Ia mendeskripsikan apa yang ada dan berapa biaya de-subsetting; ia sendiri tidak menulis ulang program fon.
Mengapa dirancang seperti ini
Bagian berjudul “Mengapa dirancang seperti ini”Menulis ulang program fon tertanam adalah bagian yang sulit dan berisiko. Outline glyph, hinting, dan tabel cmap harus tetap konsisten, dan satu kesalahan merusak rendering. Maka NextPDF Pro memisahkan pekerjaan yang murah dan aman — inventarisasi dan proyeksi biaya — dari penulisan ulang yang mahal itu. Pemindai hanya membaca byte; ia tidak pernah mem-parse atau mengeksekusi program fon, sehingga tetap deterministik dan bebas efek samping. Jumlah glyph dan delta ukuran sengaja dilabeli sebagai heuristik, sehingga keputusan kapasitas tetap jujur alih-alih memercayai angka yang tidak dapat diukur modul ini. Itu memungkinkan Anda menimbang apakah de-subsetting sepadan dengan biayanya sebelum mencari program fon penuh.
Latar belakang desain: Fonts: the hard part.
Permukaan API
Bagian berjudul “Permukaan API”| Class | Responsibility |
|---|---|
FontDesubsetter | Memindai data PDF dan melaporkan entri fon subset. |
SubsetInfo | Deskripsi imutabel dari satu subset yang terdeteksi. |
DesubsetPlan | Subset yang ditargetkan plus estimasi kenaikan ukuran. |
Contoh kode — Mulai cepat
Bagian berjudul “Contoh kode — Mulai cepat”use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);foreach ($subsets as $info) { echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";}Contoh kode — Produksi
Bagian berjudul “Contoh kode — Produksi”use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();$subsets = $desubsetter->analyzeSubsets($pdfBytes);$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);Kasus tepi & jebakan
Bagian berjudul “Kasus tepi & jebakan”- Pemindai melaporkan
/BaseFonttanpa prefiks enam huruf sebagai entri non-subset alih-alih melewatkannya. - Estimasi kenaikan ukuran adalah heuristik berdasarkan rata-rata byte per glyph, bukan nilai terukur.
- Deteksi bekerja pada representasi byte entri
/BaseFont; object stream yang terenkripsi atau sangat terkompresi mungkin perlu didekode terlebih dahulu.
Performa
Bagian berjudul “Performa”Pemindaian subset bersifat linear terhadap panjang byte PDF. Perencanaan bersifat linear terhadap jumlah subset yang terdeteksi.
Catatan keamanan
Bagian berjudul “Catatan keamanan”Font Tools hanya membaca metadata struktural. Ia tidak mengeksekusi program fon atau menyelesaikan referensi fon eksternal.
Konformansi
Bagian berjudul “Konformansi”| Behavior | Reference | Status |
|---|---|---|
| Subset font naming convention | ISO 32000-2 §9.9.2 | Aligned (paraphrased) |
Kontrak perilaku
Bagian berjudul “Kontrak perilaku”FontDesubsetter::analyzeSubsets()memindai data PDF mentah untuk entri/BaseFont, mengenali prefiks subset enam-huruf-kapital-plus-+, dan mengembalikan masing-masing sebagaiSubsetInfoimutabel dengan nama keluarga asli, jumlah glyph subset, jumlah glyph penuh, dan pengodean./BaseFonttanpa prefiks subset dilaporkan sebagai entri non-subset alih-alih dilewatkan.DesubsetPlanmengumpulkan subset yang ditargetkan untuk diganti dan melaporkan estimasi kenaikan ukuran-byte berdasarkan rata-rata byte per glyph — sebuah heuristik, bukan nilai terukur.- Ini adalah lapisan analisis dan perencanaan. Ia melaporkan apa yang ada dan berapa biaya de-subsetting; ia tidak menulis ulang program fon, mengeksekusi program fon, atau menyelesaikan referensi fon eksternal.
Catatan batas Enterprise
Bagian berjudul “Catatan batas Enterprise”Enterprise tidak mengubah perilaku Font Tools. Enterprise menambahkan fitur tingkat-lebih-tinggi yang didokumentasikan terpisah; fitur tersebut tidak diwajibkan untuk deteksi subset atau perencanaan de-subset.
Fallback / alternatif Core
Bagian berjudul “Fallback / alternatif Core”Pipeline fon sumber terbuka NextPDF Core menangani penanaman fon dasar. Akuntansi subset dan perencanaan de-subset adalah tambahan Pro. Lihat /modules/font/.
Batas publikasi
Bagian berjudul “Batas publikasi”Halaman ini mendokumentasikan hanya perilaku yang dapat diamati secara eksternal dan permukaan API publik yang didukung. Jalur namespace internal, kelas helper, tabel mekanisme, nama berkas runbook, dan prefiks tiket berada di luar cakupan.
Lihat juga
Bagian berjudul “Lihat juga”- Font Tools — Deep Reference — kontrak API, perilaku, dan mode kegagalan.
- Optimizer — optimisasi ukuran-berkas.
- Core font module — penanganan fon sumber terbuka.