Quy trình Kết xuất

Từ tài liệu đến hình ảnh trang

Giữa OpenDocumentAsync và PNG đến trình duyệt có hai giai đoạn riêng biệt: viewer resolution (engine nào tải tài liệu, quyết định một lần mỗi lần mở) và page processing (những gì xảy ra với mỗi hình ảnh trang ở mỗi yêu cầu). Hiểu cả hai giải thích tại sao một định dạng lại hiển thị như vậy — và DefaultRender thực sự chuyển đổi gì.

Giai đoạn 1 — Giải quyết trình xem định dạng

Nhà máy ánh xạ phần mở rộng tệp tới một trình xem thông qua danh mục định dạng, với ba mức ưu tiên:

  1. Trình xem tùy chỉnh trước. Bất cứ gì bạn đăng ký với DoconutOptions.RegisterViewer(extension, factory, defaultConfig?) sẽ thắng mọi trình xem tích hợp sẵn.
  2. Trình xem gia đình tích hợp sẵn. Danh mục ánh xạ mỗi phần mở rộng có thể xem được tới một họ trình xem — Word, Excel, PowerPoint, Pdf, Cad, Dgn, Image, Tiff, Psd, Email, Visio, Project, Xps, Epub, Txt, Html, Mht, Dcn — mỗi họ có bộ điều hợp engine riêng. Nếu một plugin có giấy phép cung cấp trình xem cho cùng phần mở rộng, trình xem plugin sẽ thay thế trình xem tích hợp sẵn. AddDoconut() xác thực các quyền plugin đã đăng ký khi khởi động; việc nhà máy quay lại trình xem tích hợp sẵn là quy tắc thời gian chạy phòng thủ.
  3. Định dạng chỉ có plugin. Một số phần mở rộng không có trình xem tích hợp — DICOM (.dcm) chỉ tồn tại thông qua plugin DICOM. Mở một tệp mà không có khả năng cần thiết sẽ ném lỗi:
text
LicenseException: This document type requires the 'Dicom' plugin license.

Một phần mở rộng không có trình xem nào sẽ gây ra:

text
FormatNotSupportedException: Document format '<extension>' is not supported.

Sau khi giải quyết, cấu hình được thiết lập: đối tượng cấu hình rõ ràng của bạn nếu bạn đã truyền vào, nếu không thì cấu hình mặc định của định dạng từ danh mục. DocOptions.Password được sao chép vào cấu hình cho các tài liệu được bảo vệ.

Giai đoạn 1b — Chế độ chuyển hướng (DefaultRender = false)

Hầu hết các cấu hình theo định dạng đều cung cấp cờ DefaultRender. Nó chọn giữa hai đường đi cơ bản khác nhau:

  • DefaultRender = true — tài liệu được kết xuất một cách tự nhiên, trực tiếp thành hình ảnh trang.
  • DefaultRender = false — tài liệu đầu tiên được chuyển đổi thành PDF trong bộ nhớ, engine nguồn được giải phóng, và một trình xem PDF tiếp quản. PDF được tạo nhúng văn bản thực, vì vậy tìm kiếm toàn văn nhận được các đánh dấu chính xác theo pixel; quy trình buộc bật AllowSearch và AllowCopy cho PDF chuyển hướng vì quá trình chuyển đổi không hiển thị cho người dùng.

XPS và mặc định danh mục cho MHT sử dụng đường dẫn chuyển hướng. Một phép chiếu PDF có thể cung cấp tìm kiếm bản địa cho các định dạng như HTML và Microsoft Project. Nếu PDF kết quả chứa hình ảnh mà không có lớp văn bản, trình xem tiêu chuẩn không thể tìm kiếm các pixel đó.

Sử dụng chế độ chuyển hướng khi bạn cần một phép chiếu PDF có chứa văn bản — với chi phí là việc chuyển đổi trước khi tài liệu mở.

Giai đoạn 2 — Quy trình hình ảnh trang

Các trang đã kết xuất được xử lý theo yêu cầu qua một chuỗi cố định:

text
raw page PNG → watermark → rotate/flip → scale → annotation burn → PNG to the response
  • Watermark — được áp dụng dựa trên trạng thái giấy phép (thiếu giấy phép, tạm thời hoặc thuê bao đã hết hạn, miền không hợp lệ, phiên bản sai) và từ DocOptions.Watermark cho văn bản tùy chỉnh của bạn. Ứng dụng có giấy phép hợp lệ — hoặc giấy phép Temporary đang hoạt động — nếu không có watermark tùy chỉnh sẽ bỏ qua bước này.
  • Rotate/flip — trạng thái mỗi trang mà người dùng thiết lập trong widget (90°/180°/270°, lật ngang/dọc) được lưu trong phiên và áp dụng trên mỗi lần kết xuất tiếp theo của trang đó.
  • Scale — ảnh thu nhỏ và mức thu phóng được tạo bằng cách thay đổi kích thước trang đã kết xuất tới kích thước mục tiêu yêu cầu; 0 có nghĩa là phục vụ ở kích thước gốc.
  • Annotation burn — các chú thích đã lưu được vẽ lên bitmap để các bản xuất và hình ảnh trang hiển thị chúng.
  • Encoding — kết quả được mã hoá thành PNG bằng các luồng bộ nhớ chung và ghi trực tiếp vào phản hồi HTTP.

Các lỗi trong middleware được trả về dưới dạng hình ảnh lỗi PNG (văn bản đỏ trên nền trắng) thay vì các trang lỗi HTTP, để widget có thể hiển thị chúng trong khu vực trang.

Bộ nhớ đệm trang

BaseConfig.CachePages (mặc định true) giữ các hình ảnh trang đã kết xuất trong bộ nhớ suốt thời gian phiên tài liệu, vì vậy việc truy cập lại một trang sẽ không phải kết xuất lại. BaseConfig.ImageResolution (25–300 DPI, 0 = mặc định định dạng) là thước đo chính về chất lượng/bộ nhớ; mặc định của mỗi định dạng được ghi trong trang cấu hình của nó.

DocOptions.ImageResolution đã lỗi thời và không kiểm soát chất lượng kết xuất. Nếu bạn đang đưa một ứng dụng từ thư viện trước lên, chuyển giá trị đó vào cấu hình định dạng — trình biên dịch sẽ chỉ ra mọi vị trí gọi.

Kết xuất trên một nút so với nhiều nút

Mọi thứ ở trên mô tả việc kết xuất trên một nút duy nhất theo yêu cầu cho phiên đã mở tài liệu. Một triển khai trong đó một nút kết xuất và công bố toàn bộ bộ artefact, còn các nút khác phục vụ các trang đó từ lưu trữ chung, sử dụng một đường đọc khác — xem Triển khai Phân tán.

Nơi để điều chỉnh gì

Bạn muốnĐiều chỉnh
Trang sắc nét hơnImageResolution trên cấu hình định dạng
Tìm kiếm văn bản chính xác trên HTML/EPUB/email/MHT/MPPDefaultRender = false trên cấu hình định dạng
Giảm bộ nhớ trên tài liệu lớnCachePages = false, đóng phiên một cách rõ ràng
Dấu của bạn trên mỗi trangDocOptions.Watermark

Trang này có hữu ích không?