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.
|
// Check if a Collection dictionary is present in the document.
|
||||||
try {
|
try {
|
||||||
const collection = this.catalog.catDict.get("Collection");
|
const collection = this.catalog.catDict.get("Collection");
|
||||||
if (isDict(collection) && collection.getKeys().length > 0) {
|
if (isDict(collection) && collection.size > 0) {
|
||||||
this.collection = collection;
|
this.collection = collection;
|
||||||
}
|
}
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
|
@ -85,6 +85,10 @@ var Dict = (function DictClosure() {
|
|||||||
this.xref = newXref;
|
this.xref = newXref;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get size() {
|
||||||
|
return Object.keys(this._map).length;
|
||||||
|
},
|
||||||
|
|
||||||
// automatically dereferences Ref objects
|
// automatically dereferences Ref objects
|
||||||
get(key1, key2, key3) {
|
get(key1, key2, key3) {
|
||||||
let value = this._map[key1];
|
let value = this._map[key1];
|
||||||
|
@ -117,6 +117,17 @@ describe("primitives", function () {
|
|||||||
expect(dict.xref).toEqual(xref);
|
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 () {
|
it("should return invalid values for unknown keys", function () {
|
||||||
checkInvalidHasValues(emptyDict);
|
checkInvalidHasValues(emptyDict);
|
||||||
checkInvalidKeyValues(emptyDict);
|
checkInvalidKeyValues(emptyDict);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user