Display Lists and Print Production

HotPDF biên dịch các stream trang đã nạp thành các thể hiện THPDFPageDisplayList tái sử dụng với số liệu THPDFDisplayListInfo và hộp giới hạn đối tượng nội dung

Việc dựng tài liệu lưu cache các danh sách đã biên dịch, trong khi caller có thể yêu cầu một danh sách sở hữu độc lập để thực thi lặp lại hoặc truy vấn đối tượng theo vùng

Trình diễn giải sản xuất dùng chung

Bitmap không tăng tiến, direct-DC, Form và phát lại display-list đều đưa nội dung đã tokenize trước qua HPDFInterpretContentTokensDevice , nơi sở hữu việc duyệt toán tử và các biên hủy

THPDFPageRenderer triển khai IHPDFContentOperatorDevice , nên việc duyệt dùng chung gọi toàn bộ máy trạng thái đồ họa, văn bản, tài nguyên, clip, pattern, transparency, marked-content và ảnh của nó mà không giảm kết xuất sản xuất xuống bề mặt callback ngữ nghĩa nhỏ hơn

Display list cache các chỉ số token toán tử trong lúc stream được biên dịch và chỉ phát lại những chỉ số đó, tránh quét operand lặp lại; THPDFPageDisplayList.OperatorCount và THPDFDisplayListInfo.OperatorCount phơi bày số lệnh đã cache

Các thiết bị ngữ nghĩa chỉ triển khai IHPDFContentDevice giữ các callback lọc theo năng lực, trong khi các thiết bị toán tử đầy đủ nhận từng toán tử đã xác thực một kèm một điểm kiểm tra hủy cho mỗi toán tử

Dựng có giới hạn và đồng thời

THPDFRenderTileEvent nhận một tile hoặc dải ngang có kích thước do caller định cỡ tại một thời điểm, giữ bộ nhớ raster đỉnh độc lập với kích thước trang đầy đủ

RenderLoadedPagesParallel chồng lấn việc biên dịch display-list với phát lại, bắt đầu trang sẵn sàng đầu tiên mà không chờ một rào cản biên dịch đầy đủ, cân bằng động cả hai giai đoạn trên các worker có giới hạn, và trả về một THPDFBitmapArray theo thứ tự đầu vào

Biên dịch chạy bên ngoài khóa cache display-list, trong khi việc nhận vào kiểm tra kép và số lần dùng được bảo vệ cho các trang không liên quan biên dịch đồng thời mà không nhân đôi mục đã xuất bản hoặc trục xuất một danh sách trong lúc phát lại

THPDFParallelRenderPipelineInfo cung cấp số lần trúng cache, số lần biên dịch, số lần hoàn thành, độ đồng thời biên dịch và dựng đỉnh, số trang được biên dịch tại kết quả đầu tiên, độ trễ kết quả đầu tiên, và tổng thời gian đã trôi qua

RenderLoadedPagesParallelOrdered giao callback theo thứ tự đầu vào trên luồng gọi và giải phóng mỗi bitmap mượn sau khi callback trả về, trong khi độ sâu đầu ra do caller chọn áp dụng backpressure nhà sản xuất và dành một vị trí cho trang được yêu cầu kế tiếp nên một trang đầu chậm không thể deadlock sau các kết quả muộn hơn

Streaming có thứ tự giữ tối đa một display-list và một lần dựng đang hoạt động mỗi worker cộng hàng đợi bitmap đã hoàn thành có giới hạn thay vì giữ toàn bộ đầu ra job trong bộ nhớ

Pluggable render backends tiêu thụ cùng các danh sách đã biên dịch qua một view tài nguyên tài liệu không sở hữu, nên các đường dẫn đồng bộ và song song tránh phân tích lại nội dung trang trong khi khả năng backend quyết định liệu các lần gọi có thể chồng lấn hay yêu cầu điều phối tuần tự

Bộ lập lịch bộ nhớ đỉnh toàn tiến trình giờ giới hạn cả hai API song song: ước tính trang lớn nhất giảm số worker ban đầu, mỗi trang được nhận dành toàn bộ tập làm việc ước tính của nó, và đầu ra có thứ tự giữ khoản dành đó qua việc giao callback

Hủy bỏ bộ lập lịch đánh thức những người chờ ngân sách khi hủy callback hoặc lỗi worker, trong khi đo lường cung cấp số worker được yêu cầu so với hiệu quả, trọng số dành đỉnh, số trang bị trì hoãn, và tổng thời gian chờ

RenderLoadedPageTilesParallel và RenderLoadedPageBandsParallel phân phát các ô theo hàng hoặc các dải trên xuống qua các worker cô lập, trong đó mỗi worker sở hữu nhiều nhất một ô, và một trần bộ nhớ làm việc do caller cung cấp giảm concurrency trước lần nhận việc đầu tiên

Các ngữ cảnh kết xuất song song sao chép các chuỗi token glyph Type 3 bất biến và các màn hình ngưỡng halftone từ một cache LRU có giới hạn, giữ quyền sở hữu cục bộ renderer cho trạng thái đồ họa biến đổi được và các tài nguyên GDI

SaveLoadedPageToPng , SaveLoadedPageToPngStream , SaveLoadedPagesToTiffBanded và SaveLoadedPagesToTiffStreamBanded tiêu thụ cùng một band renderer qua các bộ mã hóa PNG hoặc TIFF dạng stream, nên các trang rất lớn phát đầu ra nén theo từng hàng mà không giữ một framebuffer hoàn chỉnh trong khi THPDFBandImageExportInfo báo các dải đã kết xuất, hàng đã mã hóa, worker, byte đặt chỗ đỉnh, byte đầu ra, thời gian trôi và hủy

Giải mã ảnh dùng chung được phối hợp riêng nên công việc trang vector vẫn song song mà không làm hỏng các mục cache ảnh đã giải mã

PrefetchLoadedPages làm ấm các mục raster với một token hủy bỏ riêng trong khi biên dịch và dựng bên ngoài khóa cache, và việc dựng trang nền trước chiếm quyền worker trước khi bắt đầu công việc nhạy độ trễ

THPDFLoadedPagePrefetchInfo báo cáo công việc đã lập lịch, đã bắt đầu, đã hoàn thành, đã lưu cache, đã dựng, đã lỗi, đã hủy, và bị chiếm quyền nền trước cùng độ trễ hủy cuối và đỉnh

Điều khiển trong suốt và in

Làm phẳng trong suốt trước tiên kiểm tra số đếm trong suốt display-list và một trần pixel do caller định nghĩa, rồi thay sơn trang bằng một ảnh RGB hiệu chỉnh nén Flate không mất dữ liệu

Trang có chất tạo màu Separation hoặc DeviceN vẫn là nội dung vector, với các chất tạo màu được phát hiện và trạng thái bảo toàn được cung cấp cho caller

Trình dựng thực thi các hàm chuyển và dictionary halftone Type 1, 5, 6, 10, hoặc 16 từ ExtGState trong khi giữ các màn hình RGB độc lập và các ghi đè chuyển của chúng qua q và Q

THPDFInkCoverageInfo báo cáo độ phủ CMYK trung bình, tổng diện tích phủ tối đa và số pixel trên ngưỡng đã chọn

Đầu ra tấm process và spot hỗ trợ chất tạo màu DeviceCMYK, Separation và DeviceN

Loaded-page colour rewrite dùng cùng trình dựng hoàn chỉnh để chuyển đổi các trang phức tạp thành Gray, RGB, hoặc CMYK trong khi giữ nội dung trang màu thiết bị đơn giản dưới dạng vector và áp dụng một chính sách tấm spot tường minh

THPDFTrappingInfo kết hợp các khai báo trapping tài liệu, siêu dữ liệu trang và chẩn đoán cấu trúc TrapNet

Quy trình ICC

Biến đổi dựng có thể kết hợp một hồ sơ nguồn PDF, không gian màu blend, hồ sơ proof, hồ sơ đầu ra và đích raster sRGB

Tất cả bốn ý định dựng ICC và bù điểm đen thực được áp dụng nhất quán cho màu vector và mẫu ảnh trên toàn pipeline

Các biến đổi hoàn chỉnh được chia sẻ qua các đường dẫn dựng vector, ảnh, trang và song song qua một cache LRU 64 MiB an toàn luồng khóa theo nội dung hồ sơ nguồn, proof và đầu ra, ý định dựng hiệu lực và bù điểm đen

Làm phẳng trong suốt tái sử dụng cùng pipeline biến đổi, rồi phát ra các tile CalRGB D65 không có đường nối dưới các ngân sách tổng raster và pixel theo tile do caller kiểm soát

API chính