Pro phiên bản
Công cụ phông chữ
Tổng quan nhanh
Phần tiêu đề “Tổng quan nhanh”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.
Tính khả dụng & cấp phép
Phần tiêu đề “Tính khả dụng & cấp phép”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.
Cài đặt
Phần tiêu đề “Cài đặt”composer require nextpdf/pro:^3Tổng quan khái niệm
Phần tiêu đề “Tổng quan khái niệm”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.
FontDesubsetterqué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ịSubsetInfovớ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.
DesubsetPlanthu 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.
Vì sao nó hoạt động theo cách này
Phần tiêu đề “Vì sao nó hoạt động theo cách này”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ó.
Bề mặt API
Phần tiêu đề “Bề mặt API”| Lớp | Trách nhiệm |
|---|---|
FontDesubsetter | Quét dữ liệu PDF và báo cáo các mục phông tập con. |
SubsetInfo | Mô tả bất biến của một tập con được phát hiện. |
DesubsetPlan | Các tập con được nhắm tới cộng với mức tăng kích thước ước tính. |
Mẫu mã — Khởi đầu nhanh
Phần tiêu đề “Mẫu mã — Khởi đầu nhanh”use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);foreach ($subsets as $info) { echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";}Mẫu mã — Production
Phần tiêu đề “Mẫu mã — Production”use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();$subsets = $desubsetter->analyzeSubsets($pdfBytes);$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);Trường hợp biên & lưu ý
Phần tiêu đề “Trường hợp biên & lưu ý”- Bộ quét báo cáo một
/BaseFontkhô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.
Hiệu năng
Phần tiêu đề “Hiệu năng”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.
Ghi chú về bảo mật
Phần tiêu đề “Ghi chú về bảo mật”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.
Sự phù hợp tiêu chuẩn
Phần tiêu đề “Sự phù hợp tiêu chuẩn”| Hành vi | Tham chiếu | Trạng thái |
|---|---|---|
| Quy ước đặt tên phông tập con | ISO 32000-2 §9.9.2 | Đồng bộ (diễn đạt lại) |
Hợp đồng hành vi
Phần tiêu đề “Hợp đồng hành vi”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ộtSubsetInfobấ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
/BaseFontkhô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. DesubsetPlanthu 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.
Ghi chú ranh giới Enterprise
Phần tiêu đề “Ghi chú ranh giới Enterprise”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.
Phương án dự phòng / thay thế trong Core
Phần tiêu đề “Phương án dự phòng / thay thế trong Core”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/.
Ranh giới xuất bản
Phần tiêu đề “Ranh giới xuất bản”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.
Xem thêm
Phần tiêu đề “Xem thêm”- Font Tools — Tham chiếu sâu — hợp đồng API, hành vi và các chế độ lỗi.
- Optimizer — tối ưu hóa kích thước tệp.
- Module phông của Core — xử lý phông mã nguồn mở.