Span-Based Simple-Object Parsing
Unit HPDFParser phân tích các từ điển và mảng PDF độc lập mà không sao chép chuỗi con token hoặc container lồng nhau
Entry points
function HPDFParserParseSimpleDictionary(
const Data: AnsiString;
RecursionLevel: Integer = 0): THPDFDictionaryObject;
function HPDFParserParseSimpleDictionaryWithStatistics(
const Data: AnsiString;
out Statistics: THPDFParserViewStatistics;
RecursionLevel: Integer = 0): THPDFDictionaryObject;
function HPDFParserParseSimpleArray(
const Data: AnsiString): THPDFArrayObject;
function HPDFParserParseSimpleArrayWithStatistics(
const Data: AnsiString;
out Statistics: THPDFParserViewStatistics): THPDFArrayObject;
Từ điển hoặc mảng được trả về do caller sở hữu và chứa các đối tượng HotPDF bền vững thông thường không phụ thuộc vào vòng đời chuỗi nguồn
View statistics
THPDFParserViewStatistics phơi bày SourceBytes, TokenViewCount, MaterializedStringCount, MaterializedBytes, ObjectCount, ContainerCount, MaxDepth, ErrorCount, và Valid
Token view đếm các dải nguồn có giới hạn, trong khi bộ đếm chuỗi materialized bao phủ các byte được sao chép vào tên, khóa, và chuỗi PDF bền vững
Supported objects
Parser nhận diện tên, số nguyên, số thực, boolean, null, tham chiếu gián tiếp, chuỗi literal, chuỗi thập lục phân, mảng, và từ điển
Chuỗi literal giữ nguyên dấu ngoặc lồng nhau, dấu phân cách được thoát, escape bát phân, và tiếp tục dòng được thoát, trong khi khoảng trắng và chú thích PDF bị bỏ qua
Các line ending CR, CRLF, và LF không được thoát bên trong chuỗi literal được giải mã thành một LF cho mỗi line ending; ký tự xuống dòng được thoát như \r hay \015 vẫn là byte CR, còn tiếp tục dòng bằng backslash không thêm byte nào
Container lồng nhau dùng chung một con trỏ trên đầu vào bất biến, đệ quy có giới hạn, và khóa từ điển trùng thay thế giá trị trước đó với khớp phân biệt hoa thường
Dấu phân cách dị dạng đẩy con trỏ phục hồi tiến lên mà không bỏ qua các token hợp lệ liền kề; thân mảng cung cấp thiếu ngoặc mở cũng phục hồi được từ các ngoặc đóng lạc và báo chúng trong ErrorCount
Performance characteristics
Tên và chuỗi materialize một lần tại ranh giới đối tượng bền vững của chúng, chuyển đổi số đọc trực tiếp byte nguồn, và một chỉ mục địa chỉ mở theo thao tác ngăn quét trùng lặp bậc hai khi xây dựng từ điển lớn
Một fixture hồi quy Win32 30.000 cặp giảm byte cấp phát năm lượt từ 50.866.510 xuống 17.936.800 và thời gian trôi qua từ 3.656 ms xuống 46 ms
See also: Scalable and Random-Access PDF Loading, Bounded PDF Parser Budgets