LoadFromMappedFile
Quản lý tài liệu, Hiệu năng, Đầu vào tệp
Mô tả
Nạp và chọn một PDF cục bộ thông qua một khung nhìn ánh xạ chỉ đọc có giới hạn, cho phép các lần đọc đối tượng và stream hoãn lớn tái sử dụng các trang tệp của hệ điều hành mà không giữ toàn bộ nguồn trong bộ nhớ
Cú pháp
Delphi
Function TPDFlib.LoadFromMappedFile(Const FileName, Password: WideString;
WindowSize: Int64= 0; Options: Integer= 0): Integer;Tham số
| FileName | Đường dẫn của PDF cục bộ |
|---|---|
| Password | Mật khẩu dùng để mở PDF, hoặc chuỗi rỗng cho tài liệu không mã hóa |
| WindowSize | Kích thước khung nhìn ánh xạ yêu cầu tính bằng byte; số 0 chọn 64 MiB, các giá trị dưới độ chi tiết cấp phát của hệ điều hành được nâng lên mức đó và các giá trị trên 1 GiB bị giới hạn |
| Options | Số 0 cho phép phương án dự phòng file-stream chỉ đọc, còn PDF_MAPPED_FILE_REQUIRE_MAPPING thất bại trừ khi một khung nhìn ánh xạ đang hoạt động |
Giá trị trả về
| 0 | Các đối số không hợp lệ, không thể mở tệp, ánh xạ bắt buộc không khả dụng hoặc không thể nạp PDF; hãy kiểm tra LastErrorCode |
|---|---|
| 1 | Tài liệu đã được nạp và chọn |
Ghi chú
Các bản dựng Windows giữ một khung nhìn chỉ đọc và ánh xạ lại theo nhu cầu tại các ranh giới độ chi tiết cấp phát; các nền tảng khác và các lần ánh xạ thất bại dùng cùng hợp đồng đọc tuyệt đối qua một file stream chỉ đọc thông thường trừ khi ánh xạ là bắt buộcKhung nhìn 64 MiB mặc định giới hạn việc dùng không gian địa chỉ độc lập với kích thước nguồn và phù hợp cho truy cập rời rạc các tệp cục bộ lớn; một khung nhìn nhỏ hơn có thể giảm không gian địa chỉ thường trú với cái giá là nhiều lần ánh xạ lại hơnCác lần đọc lát đối tượng tuyệt đối sao chép trực tiếp từ khung nhìn hiện tại vào bộ lưu trữ của bộ phân tích mà không thay đổi con trỏ luồng định vị; đây không phải là một API con trỏ zero-copy bền vững vì việc ánh xạ lại làm các địa chỉ khung nhìn mất hiệu lựcNguồn vẫn mở cho đến khi tài liệu đã nạp bị gỡ bỏ, và việc lưu hay trích xuất hoãn có thể tiếp tục đọc nóNếu
view bounds mặc định 64 MiB định địa chỉ bộ nhớ độc lập với kích thước nguồn và hợp cho truy cập thưa tới file lớn cục bộ; view nhỏ hơn giảm bộ nhớ thường trú nhưng đánh đổi nhiều lần remap
Đọc object slice tuyệt đối sao chép trực tiếp từ view hiện tại vào bộ lưu của parser mà không đổi cursor dòng của stream; đây không phải API zero-copy bền vững vì việc remap làm mất hiệu lực địa chỉ view
Nguồn còn mở cho đến khi tài liệu đã tải bị gỡ, và việc lưu hay trích xuất hoãn có thể tiếp tục đọc nó
OnPassword được gán, mỗi lần thử lại mật khẩu bị từ chối sẽ nhận một stream ánh xạ và trạng thái bộ phân tích mớiDùng
GetMappedFileInfo để xác nhận ánh xạ có đang hoạt động hay không và xem thống kê khung nhìn cùng số lần đọc hiện tại