Lewati ke konten
getnextpdf.com

Pro edisi

Font Tools

NextPDF Pro memeriksa program fon tertanam, mengidentifikasi fon subset berdasarkan konvensi penamaan standarnya, dan menghasilkan rencana de-subsetting terstruktur dengan estimasi dampak ukuran.

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.

Terminal window
composer require nextpdf/pro:^3

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. FontDesubsetter memindai data PDF mentah untuk entri /BaseFont, mengenali pola prefiks subset, dan melaporkan setiap entri sebagai objek nilai SubsetInfo dengan nama keluarga asli, jumlah glyph subset, jumlah glyph penuh, dan pengodean.
  • Merencanakan de-subsetting. DesubsetPlan mengumpulkan 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.

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.

ClassResponsibility
FontDesubsetterMemindai data PDF dan melaporkan entri fon subset.
SubsetInfoDeskripsi imutabel dari satu subset yang terdeteksi.
DesubsetPlanSubset yang ditargetkan plus estimasi kenaikan ukuran.
use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);
foreach ($subsets as $info) {
echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";
}
use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();
$subsets = $desubsetter->analyzeSubsets($pdfBytes);
$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);
  • Pemindai melaporkan /BaseFont tanpa 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.

Pemindaian subset bersifat linear terhadap panjang byte PDF. Perencanaan bersifat linear terhadap jumlah subset yang terdeteksi.

Font Tools hanya membaca metadata struktural. Ia tidak mengeksekusi program fon atau menyelesaikan referensi fon eksternal.

BehaviorReferenceStatus
Subset font naming conventionISO 32000-2 §9.9.2Aligned (paraphrased)
  • FontDesubsetter::analyzeSubsets() memindai data PDF mentah untuk entri /BaseFont, mengenali prefiks subset enam-huruf-kapital-plus-+, dan mengembalikan masing-masing sebagai SubsetInfo imutabel dengan nama keluarga asli, jumlah glyph subset, jumlah glyph penuh, dan pengodean.
  • /BaseFont tanpa prefiks subset dilaporkan sebagai entri non-subset alih-alih dilewatkan.
  • DesubsetPlan mengumpulkan 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.

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.

Pipeline fon sumber terbuka NextPDF Core menangani penanaman fon dasar. Akuntansi subset dan perencanaan de-subset adalah tambahan Pro. Lihat /modules/font/.

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.