Bỏ qua để đến nội dung
getnextpdf.com

Pro phiên bản

Công cụ phông chữ

NextPDF Pro soi xét các chương trình phông nhúng, nhận diện các phông tập con theo quy ước đặt tên chuẩn của chúng, và tạo ra một kế hoạch de-subset có cấu trúc kèm ước tính tác động về kích thước.

Năng lực này đi kèm trong NextPDF Pro (nextpdf/pro) và kích hoạt với một license envelope bậc Pro. Một triển khai không có quyền đó sẽ không nạp các lớp của năng lực này. So sánh các phiên bản và nhận giấy phép.

Không có cờ giấy phép theo từng tính năng nào kiểm soát module này. Các lớp Font Tools có sẵn bất cứ khi nào nextpdf/pro được cài đặt.

Terminal window
composer require nextpdf/pro:^3

Các phông tập con trong một PDF chỉ nhúng các glyph mà tài liệu sử dụng. Theo quy ước, tên /BaseFont của chúng mang một tag sáu chữ cái viết hoa theo sau bởi +, ví dụ ABCDEF+Arial. NextPDF Pro:

  • Phát hiện tập con. FontDesubsetter quét dữ liệu PDF thô để tìm các mục /BaseFont, nhận diện mẫu tiền tố tập con, và báo cáo mỗi mục dưới dạng một đối tượng giá trị SubsetInfo với tên họ phông gốc, số glyph của tập con, số glyph đầy đủ và mã hóa.
  • Lập kế hoạch de-subset. DesubsetPlan thu thập các phông tập con được nhắm tới để thay thế bằng các chương trình phông đầy đủ và báo cáo một mức tăng kích thước byte ước tính, để bạn có thể quyết định liệu việc de-subset có đáng với chi phí kích thước tệp hay không trước khi hành động.

Font Tools là một lớp phân tích và lập kế hoạch. Nó mô tả những gì đang hiện diện và việc de-subset sẽ tốn bao nhiêu; bản thân nó không viết lại chương trình phông.

Việc viết lại một chương trình phông nhúng là phần khó và rủi ro. Các đường viền glyph, hinting và các bảng cmap phải giữ nhất quán, và một sai sót sẽ làm hỏng việc kết xuất. Vì vậy NextPDF Pro tách phần công việc rẻ và an toàn — kiểm kê và dự phóng chi phí — khỏi việc viết lại tốn kém đó. Bộ quét chỉ đọc byte; nó không bao giờ phân tích cú pháp hay thực thi một chương trình phông, nên nó giữ tính tất định và không có tác dụng phụ. Số lượng glyph và mức chênh lệch kích thước được gán nhãn là heuristic một cách có chủ đích, để một quyết định về năng lực giữ được sự trung thực thay vì tin vào một con số mà module không thể đo được. Điều đó cho phép bạn cân nhắc liệu việc de-subset có đáng với chi phí hay không trước khi tìm nguồn các chương trình phông đầy đủ.

Bối cảnh thiết kế: Fonts: phần khó.

LớpTrách nhiệm
FontDesubsetterQuét dữ liệu PDF và báo cáo các mục phông tập con.
SubsetInfoMô tả bất biến của một tập con được phát hiện.
DesubsetPlanCác tập con được nhắm tới cộng với mức tăng kích thước ước tính.
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)]);
  • Bộ quét báo cáo một /BaseFont không có tiền tố sáu chữ cái dưới dạng một mục không-phải-tập-con thay vì bỏ qua nó.
  • Mức tăng kích thước ước tính là một heuristic dựa trên số byte trung bình mỗi glyph, không phải một giá trị đo được.
  • Việc phát hiện hoạt động trên biểu diễn byte của các mục /BaseFont; các object stream được mã hóa hoặc nén nặng có thể cần được giải mã trước.

Việc quét tập con là tuyến tính theo độ dài byte của PDF. Việc lập kế hoạch là tuyến tính theo số lượng tập con được phát hiện.

Font Tools chỉ đọc metadata cấu trúc. Nó không thực thi các chương trình phông hay phân giải các tham chiếu phông bên ngoài.

Hành viTham chiếuTrạng thái
Quy ước đặt tên phông tập conISO 32000-2 §9.9.2Đồng bộ (diễn đạt lại)
  • FontDesubsetter::analyzeSubsets() quét dữ liệu PDF thô để tìm các mục /BaseFont, nhận diện tiền tố tập con kiểu sáu-chữ-cái-viết-hoa-cộng-+, và trả về mỗi mục dưới dạng một SubsetInfo bất biến với tên họ phông gốc, số glyph của tập con, số glyph đầy đủ và mã hóa.
  • Một /BaseFont không có tiền tố tập con được báo cáo dưới dạng một mục không-phải-tập-con thay vì bị bỏ qua.
  • DesubsetPlan thu thập các tập con được nhắm tới để thay thế và báo cáo một mức tăng kích thước byte ước tính dựa trên số byte trung bình mỗi glyph — một heuristic, không phải một giá trị đo được.
  • Đây là một lớp phân tích và lập kế hoạch. Nó báo cáo những gì đang hiện diện và việc de-subset sẽ tốn bao nhiêu; nó không viết lại chương trình phông, thực thi các chương trình phông, hay phân giải các tham chiếu phông bên ngoài.

Enterprise không thay đổi hành vi của Font Tools. Enterprise bổ sung các tính năng bậc cao hơn được ghi tài liệu riêng; chúng không bắt buộc cho việc phát hiện tập con hay lập kế hoạch de-subset.

Pipeline phông mã nguồn mở của NextPDF Core xử lý việc nhúng phông cơ sở. Việc thống kê tập con và lập kế hoạch de-subset là các bổ sung của Pro. Xem /modules/font/.

Trang này chỉ ghi tài liệu hành vi có thể quan sát từ bên ngoài và bề mặt API công khai được hỗ trợ. Các đường dẫn namespace nội bộ, lớp trợ giúp, bảng cơ chế, tên tệp runbook và tiền tố ticket đều nằm ngoài phạm vi.