Add a size
getter, to Dict
instances, to provide an easier way of checking the number of entries
This removes the need to manually call `Dict.getKeys()` and check its length.
This commit is contained in:
parent
e63d1ebff5
commit
6381b5b08f
@ -551,7 +551,7 @@ class PDFDocument {
|
||||
// Check if a Collection dictionary is present in the document.
|
||||
try {
|
||||
const collection = this.catalog.catDict.get("Collection");
|
||||
if (isDict(collection) && collection.getKeys().length > 0) {
|
||||
if (isDict(collection) && collection.size > 0) {
|
||||
this.collection = collection;
|
||||
}
|
||||
} catch (ex) {
|
||||
|
@ -85,6 +85,10 @@ var Dict = (function DictClosure() {
|
||||
this.xref = newXref;
|
||||
},
|
||||
|
||||
get size() {
|
||||
return Object.keys(this._map).length;
|
||||
},
|
||||
|
||||
// automatically dereferences Ref objects
|
||||
get(key1, key2, key3) {
|
||||
let value = this._map[key1];
|
||||
|
@ -117,6 +117,17 @@ describe("primitives", function () {
|
||||
expect(dict.xref).toEqual(xref);
|
||||
});
|
||||
|
||||
it("should return correct size", function () {
|
||||
const dict = new Dict(null);
|
||||
expect(dict.size).toEqual(0);
|
||||
|
||||
dict.set("Type", Name.get("Page"));
|
||||
expect(dict.size).toEqual(1);
|
||||
|
||||
dict.set("Contents", Ref.get(10, 0));
|
||||
expect(dict.size).toEqual(2);
|
||||
});
|
||||
|
||||
it("should return invalid values for unknown keys", function () {
|
||||
checkInvalidHasValues(emptyDict);
|
||||
checkInvalidKeyValues(emptyDict);
|
||||
|
Loading…
x
Reference in New Issue
Block a user