Tổng quan về nén

Tổng quan

HotPDF sử dụng nhiều đường nén và giải nén khác nhau tùy vào việc nó đang tạo nội dung PDF mới hay đọc các luồng và ảnh hiện có từ tệp bên ngoài

Các đường nén chính

  • FlateDecode: Dùng cho các luồng PDF được tạo qua THotPDF.Compression và được zlib-ng hỗ trợ ở chế độ tương thích zlib, với phân phối SIMD lúc chạy 64-bit khi có sẵn
  • CompressionLevel: THotPDF.CompressionLevel chọn clNone, clFastest, clDefault hoặc clMaximum cho các đường Flate nâng cao
  • LZWDecode: Được hỗ trợ cho dữ liệu PDF và kiểu TIFF cũ thông qua HPDFLZW.pas
  • DCT/JPEG: Dùng cho các quy trình ảnh JPEG chuẩn do hỗ trợ ảnh của HotPDF xử lý và được libjpeg-turbo 3.1.90 hỗ trợ với các đối tượng tăng tốc SIMD của NASM
  • JBIG2 và JPEG2000: Có sẵn cho các quy trình ảnh chuyên biệt khi định dạng nguồn đã dùng các codec đó

Giảm kích thước cấu trúc cho PDF 1.5+

Với đầu ra PDF 1.5+, HotPDF có thể ghép thêm hai đường nén cấu trúc lên trên các luồng đã nén FlateDecode. Cả hai đều là tùy chọn và kết hợp tự nhiên:

  • UseXRefStream: Thay bảng tham chiếu chéo dạng văn bản xref ... trailer bằng một luồng /Type /XRef đã nén (ISO 32000-1 7.5.8) Giảm chi phí xref từ 4 đến 10 lần trên tài liệu lớn
  • UseObjectStreams: Đóng gói các từ điển gián tiếp nhỏ (tài liệu nhiều trang, annotation, widget AcroForm, phần tử cây cấu trúc, các lớp Optional Content) vào các luồng chứa /Type /ObjStm (ISO 32000-1 7.5.7) được tham chiếu qua mục xref kiểu 2 Cần bật cả UseXRefStream Một smoke chỉ có đồ họa 30 trang thu nhỏ từ 14502 xuống 8488 byte (-41.5%) khi kết hợp hai công tắc này
  • Giải nén khi sao chép: DecompressForCopyOriginallyCompressed mô tả cách các đường sao chép tài liệu đã tải hiện thực hóa các luồng nguồn đã nén

Các đơn vị liên quan

  • HPDFZLib.pas cho FlateDecode và các trợ giúp inflate có hiểu predictor
  • HPDFLZW.pas cho giải nén LZW
  • HPDFJBIG2.pas cho hỗ trợ giải mã JBIG2
  • HPDFJpeg2000.pas và HPDFOpenJpeg.pas cho các quy trình liên quan đến JPEG2000

Xem thêm