Pro phiên bản
Optimizer
Tổng quan nhanh
Phần tiêu đề “Tổng quan nhanh”Optimizer phân tích một PDF để tìm các đối tượng trùng lặp và tiềm năng tái nén ảnh, rồi báo cáo mức giảm kích thước ước tính. Ba mức đánh đổi giữa độ trung thực đầu ra và kích thước tệp.
Tính khả dụng & cấp phép
Phần tiêu đề “Tính khả dụng & cấp phép”Khả năng này đi kèm trong NextPDF Pro (nextpdf/pro) và được kích hoạt bằng 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 khả năng này. So sánh các phiên bản và lấy giấy phép.
Không có cờ giấy phép riêng theo từng tính năng. Mức tối ưu hóa (lossless, balanced, aggressive) là một tham số lúc chạy, không phải một công tắc giấy phép.
Cài đặt
Phần tiêu đề “Cài đặt”composer require nextpdf/pro:^3Mã nằm dưới namespace NextPDF\Pro\Optimizer.
Tổng quan khái niệm
Phần tiêu đề “Tổng quan khái niệm”PdfOptimizer điều phối một bộ khử trùng lặp đối tượng và một bộ tái nén ảnh. Cho các byte PDF thô, nó tìm các nhóm đối tượng trùng lặp (khi mức cho phép), phân tích các ảnh, và ước tính mức nén cho mỗi ảnh ở chất lượng mục tiêu của mức đó. Nó tổng hợp các phát hiện thành một OptimizationResult báo cáo kích thước gốc, kích thước tối ưu hóa ước tính, số đối tượng đã loại bỏ, và số lượng ảnh trước và sau.
OptimizationLevel định nghĩa sự đánh đổi: lossless bảo toàn chất lượng ảnh và bỏ qua khử trùng lặp để có đầu ra ổn định theo byte; balanced khử trùng lặp và nhắm tới chất lượng ảnh 75 phần trăm; aggressive khử trùng lặp, giảm mẫu, và nhắm tới chất lượng 50 phần trăm.
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”Optimizer phân tích chứ không ghi lại. analyze() ước tính mức tiết kiệm tiềm năng và trả về một OptimizationResult mà không làm thay đổi đầu vào. Điều đó giữ cho lượt xử lý không phá hủy và để bạn quyết định có áp dụng nó qua Writer hay không. Trừu tượng hóa theo mức giữ sự đánh đổi ở một nơi: lossless trả về false từ deduplicateStreams() để đầu ra có thể giữ nguyên byte-identical, trong khi balanced và aggressive tái nén các stream ảnh ở các mục tiêu chất lượng thấp hơn. Mức tiết kiệm đạt được phụ thuộc vào cách một tài liệu đã mã hóa các stream và ảnh của nó, nên module báo cáo một ước tính từ các đối tượng thực sự hiện diện thay vì một con số tiêu đề cố định. Bối cảnh thiết kế: Streams and filters.
Hợp đồng hành vi
Phần tiêu đề “Hợp đồng hành vi”analyze($pdfData)trả về mộtOptimizationResult; nó không làm thay đổi đầu vào.- Mức lossless bỏ qua khử trùng lặp stream để đầu ra có thể giữ ổn định theo byte; balanced và aggressive bật khử trùng lặp.
- Các mục tiêu chất lượng ảnh lần lượt là 100, 75, và 50 phần trăm cho lossless, balanced, và aggressive.
- Kích thước tối ưu hóa ước tính không bao giờ xuống dưới không và không bao giờ vượt quá kích thước gốc.
withLevel($level)trả về một optimizer mới ở mức được yêu cầu; các thực thể không bị làm thay đổi.
Mẫu mã — Bắt đầu nhanh
Phần tiêu đề “Mẫu mã — Bắt đầu nhanh”Phần dưới đây phản ánh public API đã được ghi tài liệu. Kho mã không đi kèm một ví dụ có thể chạy cho module này.
use NextPDF\Pro\Optimizer\PdfOptimizer;
$result = (new PdfOptimizer())->analyze($pdfBytes);Mẫu mã — Sản phẩm
Phần tiêu đề “Mẫu mã — Sản phẩm”use NextPDF\Pro\Optimizer\PdfOptimizer;use NextPDF\Pro\Optimizer\OptimizationLevel;
$optimizer = new PdfOptimizer(OptimizationLevel::Aggressive);$result = $optimizer->analyze($pdfBytes);
$savings = $result->originalSize > 0 ? (1 - $result->optimizedSize / $result->originalSize) * 100 : 0.0;Trường hợp ngoại lệ & lưu ý
Phần tiêu đề “Trường hợp ngoại lệ & lưu ý”analyze()ước tính tiềm năng; hãy kết hợp nó với module Writer để tạo ra một tài liệu đã tối ưu hóa.- Mức lossless cố ý mang lại mức giảm kích thước ít vì nó bảo toàn chất lượng và bỏ qua khử trùng lặp.
- Số lượng ảnh sau phản ánh các ảnh bị loại bỏ qua khử trùng lặp, không phải các ảnh bị bỏ đi.
Hiệu năng
Phần tiêu đề “Hiệu năng”Việc phân tích tuyến tính theo kích thước đầu vào cộng với chi phí quét các cấu trúc đối tượng và ảnh. Mức điều khiển mức độ tích cực của các ước tính khử trùng lặp và tái nén. Không có con số giảm kích thước cố định nào được công bố; kết quả phụ thuộc hoàn toàn vào tài liệu. Hãy đo bằng các tài liệu đại diện.
Lưu ý bảo mật
Phần tiêu đề “Lưu ý bảo mật”Hãy coi đầu vào là không đáng tin. Việc phân tích vẫn chỉ đọc và không thực thi nội dung nhúng. Module này không ghi nhật ký nội dung tài liệu nào.
Tính phù hợp
Phần tiêu đề “Tính phù hợp”Việc tối ưu hóa vận hành trên mô hình đối tượng và ảnh PDF được định nghĩa bởi ISO 32000-2; nguồn chú thích các điều khoản liên quan. Corpus RAG không khả dụng tại thời điểm soạn thảo, nên trang này không khẳng định định danh điều khoản bên ngoài nào và giới hạn các phát biểu phù hợp ở hành vi đã được kiểm chứng bởi các bài test của module.
Lưu ý ranh giới Enterprise
Phần tiêu đề “Lưu ý ranh giới Enterprise”Enterprise không thay đổi hành vi của Optimizer. Enterprise bổ sung các tính năng tuân thủ và lưu trữ bậc cao hơn được ghi tài liệu riêng; chúng không cần thiết để phân tích tiềm năng tối ưu hóa.
Phương án dự phòng / thay thế ở Core
Phần tiêu đề “Phương án dự phòng / thay thế ở Core”Không có Pro, hãy dùng tối ưu hóa cơ sở của NextPDF Core; khử trùng lặp đối tượng và phân tích tái nén ảnh có thể tinh chỉnh là các bổ sung của Pro..
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 về hành vi quan sát được từ bên ngoài và bề mặt public API đượ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 nằm ngoài phạm vi.