Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/embedpre.../assets/pdf/build
File: pdf.worker.js
for (const [key, value] of obj.getAll()) {
[42500] Fix | Delete
const dest = fetchDest(value);
[42501] Fix | Delete
if (dest) {
[42502] Fix | Delete
dests[stringToPDFString(key)] = dest;
[42503] Fix | Delete
}
[42504] Fix | Delete
}
[42505] Fix | Delete
} else if (obj instanceof Dict) {
[42506] Fix | Delete
obj.forEach(function (key, value) {
[42507] Fix | Delete
const dest = fetchDest(value);
[42508] Fix | Delete
if (dest) {
[42509] Fix | Delete
dests[key] = dest;
[42510] Fix | Delete
}
[42511] Fix | Delete
});
[42512] Fix | Delete
}
[42513] Fix | Delete
return shadow(this, "destinations", dests);
[42514] Fix | Delete
}
[42515] Fix | Delete
getDestination(id) {
[42516] Fix | Delete
const obj = this._readDests();
[42517] Fix | Delete
if (obj instanceof NameTree) {
[42518] Fix | Delete
const dest = fetchDest(obj.get(id));
[42519] Fix | Delete
if (dest) {
[42520] Fix | Delete
return dest;
[42521] Fix | Delete
}
[42522] Fix | Delete
const allDest = this.destinations[id];
[42523] Fix | Delete
if (allDest) {
[42524] Fix | Delete
warn(`Found "${id}" at an incorrect position in the NameTree.`);
[42525] Fix | Delete
return allDest;
[42526] Fix | Delete
}
[42527] Fix | Delete
} else if (obj instanceof Dict) {
[42528] Fix | Delete
const dest = fetchDest(obj.get(id));
[42529] Fix | Delete
if (dest) {
[42530] Fix | Delete
return dest;
[42531] Fix | Delete
}
[42532] Fix | Delete
}
[42533] Fix | Delete
return null;
[42534] Fix | Delete
}
[42535] Fix | Delete
_readDests() {
[42536] Fix | Delete
const obj = this._catDict.get("Names");
[42537] Fix | Delete
if (obj?.has("Dests")) {
[42538] Fix | Delete
return new NameTree(obj.getRaw("Dests"), this.xref);
[42539] Fix | Delete
} else if (this._catDict.has("Dests")) {
[42540] Fix | Delete
return this._catDict.get("Dests");
[42541] Fix | Delete
}
[42542] Fix | Delete
return undefined;
[42543] Fix | Delete
}
[42544] Fix | Delete
get pageLabels() {
[42545] Fix | Delete
let obj = null;
[42546] Fix | Delete
try {
[42547] Fix | Delete
obj = this._readPageLabels();
[42548] Fix | Delete
} catch (ex) {
[42549] Fix | Delete
if (ex instanceof MissingDataException) {
[42550] Fix | Delete
throw ex;
[42551] Fix | Delete
}
[42552] Fix | Delete
warn("Unable to read page labels.");
[42553] Fix | Delete
}
[42554] Fix | Delete
return shadow(this, "pageLabels", obj);
[42555] Fix | Delete
}
[42556] Fix | Delete
_readPageLabels() {
[42557] Fix | Delete
const obj = this._catDict.getRaw("PageLabels");
[42558] Fix | Delete
if (!obj) {
[42559] Fix | Delete
return null;
[42560] Fix | Delete
}
[42561] Fix | Delete
const pageLabels = new Array(this.numPages);
[42562] Fix | Delete
let style = null,
[42563] Fix | Delete
prefix = "";
[42564] Fix | Delete
const numberTree = new NumberTree(obj, this.xref);
[42565] Fix | Delete
const nums = numberTree.getAll();
[42566] Fix | Delete
let currentLabel = "",
[42567] Fix | Delete
currentIndex = 1;
[42568] Fix | Delete
for (let i = 0, ii = this.numPages; i < ii; i++) {
[42569] Fix | Delete
const labelDict = nums.get(i);
[42570] Fix | Delete
if (labelDict !== undefined) {
[42571] Fix | Delete
if (!(labelDict instanceof Dict)) {
[42572] Fix | Delete
throw new FormatError("PageLabel is not a dictionary.");
[42573] Fix | Delete
}
[42574] Fix | Delete
if (labelDict.has("Type") && !isName(labelDict.get("Type"), "PageLabel")) {
[42575] Fix | Delete
throw new FormatError("Invalid type in PageLabel dictionary.");
[42576] Fix | Delete
}
[42577] Fix | Delete
if (labelDict.has("S")) {
[42578] Fix | Delete
const s = labelDict.get("S");
[42579] Fix | Delete
if (!(s instanceof Name)) {
[42580] Fix | Delete
throw new FormatError("Invalid style in PageLabel dictionary.");
[42581] Fix | Delete
}
[42582] Fix | Delete
style = s.name;
[42583] Fix | Delete
} else {
[42584] Fix | Delete
style = null;
[42585] Fix | Delete
}
[42586] Fix | Delete
if (labelDict.has("P")) {
[42587] Fix | Delete
const p = labelDict.get("P");
[42588] Fix | Delete
if (typeof p !== "string") {
[42589] Fix | Delete
throw new FormatError("Invalid prefix in PageLabel dictionary.");
[42590] Fix | Delete
}
[42591] Fix | Delete
prefix = stringToPDFString(p);
[42592] Fix | Delete
} else {
[42593] Fix | Delete
prefix = "";
[42594] Fix | Delete
}
[42595] Fix | Delete
if (labelDict.has("St")) {
[42596] Fix | Delete
const st = labelDict.get("St");
[42597] Fix | Delete
if (!(Number.isInteger(st) && st >= 1)) {
[42598] Fix | Delete
throw new FormatError("Invalid start in PageLabel dictionary.");
[42599] Fix | Delete
}
[42600] Fix | Delete
currentIndex = st;
[42601] Fix | Delete
} else {
[42602] Fix | Delete
currentIndex = 1;
[42603] Fix | Delete
}
[42604] Fix | Delete
}
[42605] Fix | Delete
switch (style) {
[42606] Fix | Delete
case "D":
[42607] Fix | Delete
currentLabel = currentIndex;
[42608] Fix | Delete
break;
[42609] Fix | Delete
case "R":
[42610] Fix | Delete
case "r":
[42611] Fix | Delete
currentLabel = toRomanNumerals(currentIndex, style === "r");
[42612] Fix | Delete
break;
[42613] Fix | Delete
case "A":
[42614] Fix | Delete
case "a":
[42615] Fix | Delete
const LIMIT = 26;
[42616] Fix | Delete
const A_UPPER_CASE = 0x41,
[42617] Fix | Delete
A_LOWER_CASE = 0x61;
[42618] Fix | Delete
const baseCharCode = style === "a" ? A_LOWER_CASE : A_UPPER_CASE;
[42619] Fix | Delete
const letterIndex = currentIndex - 1;
[42620] Fix | Delete
const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);
[42621] Fix | Delete
currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);
[42622] Fix | Delete
break;
[42623] Fix | Delete
default:
[42624] Fix | Delete
if (style) {
[42625] Fix | Delete
throw new FormatError(`Invalid style "${style}" in PageLabel dictionary.`);
[42626] Fix | Delete
}
[42627] Fix | Delete
currentLabel = "";
[42628] Fix | Delete
}
[42629] Fix | Delete
pageLabels[i] = prefix + currentLabel;
[42630] Fix | Delete
currentIndex++;
[42631] Fix | Delete
}
[42632] Fix | Delete
return pageLabels;
[42633] Fix | Delete
}
[42634] Fix | Delete
get pageLayout() {
[42635] Fix | Delete
const obj = this._catDict.get("PageLayout");
[42636] Fix | Delete
let pageLayout = "";
[42637] Fix | Delete
if (obj instanceof Name) {
[42638] Fix | Delete
switch (obj.name) {
[42639] Fix | Delete
case "SinglePage":
[42640] Fix | Delete
case "OneColumn":
[42641] Fix | Delete
case "TwoColumnLeft":
[42642] Fix | Delete
case "TwoColumnRight":
[42643] Fix | Delete
case "TwoPageLeft":
[42644] Fix | Delete
case "TwoPageRight":
[42645] Fix | Delete
pageLayout = obj.name;
[42646] Fix | Delete
}
[42647] Fix | Delete
}
[42648] Fix | Delete
return shadow(this, "pageLayout", pageLayout);
[42649] Fix | Delete
}
[42650] Fix | Delete
get pageMode() {
[42651] Fix | Delete
const obj = this._catDict.get("PageMode");
[42652] Fix | Delete
let pageMode = "UseNone";
[42653] Fix | Delete
if (obj instanceof Name) {
[42654] Fix | Delete
switch (obj.name) {
[42655] Fix | Delete
case "UseNone":
[42656] Fix | Delete
case "UseOutlines":
[42657] Fix | Delete
case "UseThumbs":
[42658] Fix | Delete
case "FullScreen":
[42659] Fix | Delete
case "UseOC":
[42660] Fix | Delete
case "UseAttachments":
[42661] Fix | Delete
pageMode = obj.name;
[42662] Fix | Delete
}
[42663] Fix | Delete
}
[42664] Fix | Delete
return shadow(this, "pageMode", pageMode);
[42665] Fix | Delete
}
[42666] Fix | Delete
get viewerPreferences() {
[42667] Fix | Delete
const obj = this._catDict.get("ViewerPreferences");
[42668] Fix | Delete
if (!(obj instanceof Dict)) {
[42669] Fix | Delete
return shadow(this, "viewerPreferences", null);
[42670] Fix | Delete
}
[42671] Fix | Delete
let prefs = null;
[42672] Fix | Delete
for (const key of obj.getKeys()) {
[42673] Fix | Delete
const value = obj.get(key);
[42674] Fix | Delete
let prefValue;
[42675] Fix | Delete
switch (key) {
[42676] Fix | Delete
case "HideToolbar":
[42677] Fix | Delete
case "HideMenubar":
[42678] Fix | Delete
case "HideWindowUI":
[42679] Fix | Delete
case "FitWindow":
[42680] Fix | Delete
case "CenterWindow":
[42681] Fix | Delete
case "DisplayDocTitle":
[42682] Fix | Delete
case "PickTrayByPDFSize":
[42683] Fix | Delete
if (typeof value === "boolean") {
[42684] Fix | Delete
prefValue = value;
[42685] Fix | Delete
}
[42686] Fix | Delete
break;
[42687] Fix | Delete
case "NonFullScreenPageMode":
[42688] Fix | Delete
if (value instanceof Name) {
[42689] Fix | Delete
switch (value.name) {
[42690] Fix | Delete
case "UseNone":
[42691] Fix | Delete
case "UseOutlines":
[42692] Fix | Delete
case "UseThumbs":
[42693] Fix | Delete
case "UseOC":
[42694] Fix | Delete
prefValue = value.name;
[42695] Fix | Delete
break;
[42696] Fix | Delete
default:
[42697] Fix | Delete
prefValue = "UseNone";
[42698] Fix | Delete
}
[42699] Fix | Delete
}
[42700] Fix | Delete
break;
[42701] Fix | Delete
case "Direction":
[42702] Fix | Delete
if (value instanceof Name) {
[42703] Fix | Delete
switch (value.name) {
[42704] Fix | Delete
case "L2R":
[42705] Fix | Delete
case "R2L":
[42706] Fix | Delete
prefValue = value.name;
[42707] Fix | Delete
break;
[42708] Fix | Delete
default:
[42709] Fix | Delete
prefValue = "L2R";
[42710] Fix | Delete
}
[42711] Fix | Delete
}
[42712] Fix | Delete
break;
[42713] Fix | Delete
case "ViewArea":
[42714] Fix | Delete
case "ViewClip":
[42715] Fix | Delete
case "PrintArea":
[42716] Fix | Delete
case "PrintClip":
[42717] Fix | Delete
if (value instanceof Name) {
[42718] Fix | Delete
switch (value.name) {
[42719] Fix | Delete
case "MediaBox":
[42720] Fix | Delete
case "CropBox":
[42721] Fix | Delete
case "BleedBox":
[42722] Fix | Delete
case "TrimBox":
[42723] Fix | Delete
case "ArtBox":
[42724] Fix | Delete
prefValue = value.name;
[42725] Fix | Delete
break;
[42726] Fix | Delete
default:
[42727] Fix | Delete
prefValue = "CropBox";
[42728] Fix | Delete
}
[42729] Fix | Delete
}
[42730] Fix | Delete
break;
[42731] Fix | Delete
case "PrintScaling":
[42732] Fix | Delete
if (value instanceof Name) {
[42733] Fix | Delete
switch (value.name) {
[42734] Fix | Delete
case "None":
[42735] Fix | Delete
case "AppDefault":
[42736] Fix | Delete
prefValue = value.name;
[42737] Fix | Delete
break;
[42738] Fix | Delete
default:
[42739] Fix | Delete
prefValue = "AppDefault";
[42740] Fix | Delete
}
[42741] Fix | Delete
}
[42742] Fix | Delete
break;
[42743] Fix | Delete
case "Duplex":
[42744] Fix | Delete
if (value instanceof Name) {
[42745] Fix | Delete
switch (value.name) {
[42746] Fix | Delete
case "Simplex":
[42747] Fix | Delete
case "DuplexFlipShortEdge":
[42748] Fix | Delete
case "DuplexFlipLongEdge":
[42749] Fix | Delete
prefValue = value.name;
[42750] Fix | Delete
break;
[42751] Fix | Delete
default:
[42752] Fix | Delete
prefValue = "None";
[42753] Fix | Delete
}
[42754] Fix | Delete
}
[42755] Fix | Delete
break;
[42756] Fix | Delete
case "PrintPageRange":
[42757] Fix | Delete
if (Array.isArray(value) && value.length % 2 === 0) {
[42758] Fix | Delete
const isValid = value.every((page, i, arr) => Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages);
[42759] Fix | Delete
if (isValid) {
[42760] Fix | Delete
prefValue = value;
[42761] Fix | Delete
}
[42762] Fix | Delete
}
[42763] Fix | Delete
break;
[42764] Fix | Delete
case "NumCopies":
[42765] Fix | Delete
if (Number.isInteger(value) && value > 0) {
[42766] Fix | Delete
prefValue = value;
[42767] Fix | Delete
}
[42768] Fix | Delete
break;
[42769] Fix | Delete
default:
[42770] Fix | Delete
warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);
[42771] Fix | Delete
continue;
[42772] Fix | Delete
}
[42773] Fix | Delete
if (prefValue === undefined) {
[42774] Fix | Delete
warn(`Bad value, for key "${key}", in ViewerPreferences: ${value}.`);
[42775] Fix | Delete
continue;
[42776] Fix | Delete
}
[42777] Fix | Delete
if (!prefs) {
[42778] Fix | Delete
prefs = Object.create(null);
[42779] Fix | Delete
}
[42780] Fix | Delete
prefs[key] = prefValue;
[42781] Fix | Delete
}
[42782] Fix | Delete
return shadow(this, "viewerPreferences", prefs);
[42783] Fix | Delete
}
[42784] Fix | Delete
get openAction() {
[42785] Fix | Delete
const obj = this._catDict.get("OpenAction");
[42786] Fix | Delete
const openAction = Object.create(null);
[42787] Fix | Delete
if (obj instanceof Dict) {
[42788] Fix | Delete
const destDict = new Dict(this.xref);
[42789] Fix | Delete
destDict.set("A", obj);
[42790] Fix | Delete
const resultObj = {
[42791] Fix | Delete
url: null,
[42792] Fix | Delete
dest: null,
[42793] Fix | Delete
action: null
[42794] Fix | Delete
};
[42795] Fix | Delete
Catalog.parseDestDictionary({
[42796] Fix | Delete
destDict,
[42797] Fix | Delete
resultObj
[42798] Fix | Delete
});
[42799] Fix | Delete
if (Array.isArray(resultObj.dest)) {
[42800] Fix | Delete
openAction.dest = resultObj.dest;
[42801] Fix | Delete
} else if (resultObj.action) {
[42802] Fix | Delete
openAction.action = resultObj.action;
[42803] Fix | Delete
}
[42804] Fix | Delete
} else if (Array.isArray(obj)) {
[42805] Fix | Delete
openAction.dest = obj;
[42806] Fix | Delete
}
[42807] Fix | Delete
return shadow(this, "openAction", objectSize(openAction) > 0 ? openAction : null);
[42808] Fix | Delete
}
[42809] Fix | Delete
get attachments() {
[42810] Fix | Delete
const obj = this._catDict.get("Names");
[42811] Fix | Delete
let attachments = null;
[42812] Fix | Delete
if (obj instanceof Dict && obj.has("EmbeddedFiles")) {
[42813] Fix | Delete
const nameTree = new NameTree(obj.getRaw("EmbeddedFiles"), this.xref);
[42814] Fix | Delete
for (const [key, value] of nameTree.getAll()) {
[42815] Fix | Delete
const fs = new FileSpec(value, this.xref);
[42816] Fix | Delete
if (!attachments) {
[42817] Fix | Delete
attachments = Object.create(null);
[42818] Fix | Delete
}
[42819] Fix | Delete
attachments[stringToPDFString(key)] = fs.serializable;
[42820] Fix | Delete
}
[42821] Fix | Delete
}
[42822] Fix | Delete
return shadow(this, "attachments", attachments);
[42823] Fix | Delete
}
[42824] Fix | Delete
get xfaImages() {
[42825] Fix | Delete
const obj = this._catDict.get("Names");
[42826] Fix | Delete
let xfaImages = null;
[42827] Fix | Delete
if (obj instanceof Dict && obj.has("XFAImages")) {
[42828] Fix | Delete
const nameTree = new NameTree(obj.getRaw("XFAImages"), this.xref);
[42829] Fix | Delete
for (const [key, value] of nameTree.getAll()) {
[42830] Fix | Delete
if (!xfaImages) {
[42831] Fix | Delete
xfaImages = new Dict(this.xref);
[42832] Fix | Delete
}
[42833] Fix | Delete
xfaImages.set(stringToPDFString(key), value);
[42834] Fix | Delete
}
[42835] Fix | Delete
}
[42836] Fix | Delete
return shadow(this, "xfaImages", xfaImages);
[42837] Fix | Delete
}
[42838] Fix | Delete
_collectJavaScript() {
[42839] Fix | Delete
const obj = this._catDict.get("Names");
[42840] Fix | Delete
let javaScript = null;
[42841] Fix | Delete
function appendIfJavaScriptDict(name, jsDict) {
[42842] Fix | Delete
if (!(jsDict instanceof Dict)) {
[42843] Fix | Delete
return;
[42844] Fix | Delete
}
[42845] Fix | Delete
if (!isName(jsDict.get("S"), "JavaScript")) {
[42846] Fix | Delete
return;
[42847] Fix | Delete
}
[42848] Fix | Delete
let js = jsDict.get("JS");
[42849] Fix | Delete
if (js instanceof BaseStream) {
[42850] Fix | Delete
js = js.getString();
[42851] Fix | Delete
} else if (typeof js !== "string") {
[42852] Fix | Delete
return;
[42853] Fix | Delete
}
[42854] Fix | Delete
js = stringToPDFString(js).replaceAll("\x00", "");
[42855] Fix | Delete
if (js) {
[42856] Fix | Delete
(javaScript ||= new Map()).set(name, js);
[42857] Fix | Delete
}
[42858] Fix | Delete
}
[42859] Fix | Delete
if (obj instanceof Dict && obj.has("JavaScript")) {
[42860] Fix | Delete
const nameTree = new NameTree(obj.getRaw("JavaScript"), this.xref);
[42861] Fix | Delete
for (const [key, value] of nameTree.getAll()) {
[42862] Fix | Delete
appendIfJavaScriptDict(stringToPDFString(key), value);
[42863] Fix | Delete
}
[42864] Fix | Delete
}
[42865] Fix | Delete
const openAction = this._catDict.get("OpenAction");
[42866] Fix | Delete
if (openAction) {
[42867] Fix | Delete
appendIfJavaScriptDict("OpenAction", openAction);
[42868] Fix | Delete
}
[42869] Fix | Delete
return javaScript;
[42870] Fix | Delete
}
[42871] Fix | Delete
get jsActions() {
[42872] Fix | Delete
const javaScript = this._collectJavaScript();
[42873] Fix | Delete
let actions = collectActions(this.xref, this._catDict, DocumentActionEventType);
[42874] Fix | Delete
if (javaScript) {
[42875] Fix | Delete
actions ||= Object.create(null);
[42876] Fix | Delete
for (const [key, val] of javaScript) {
[42877] Fix | Delete
if (key in actions) {
[42878] Fix | Delete
actions[key].push(val);
[42879] Fix | Delete
} else {
[42880] Fix | Delete
actions[key] = [val];
[42881] Fix | Delete
}
[42882] Fix | Delete
}
[42883] Fix | Delete
}
[42884] Fix | Delete
return shadow(this, "jsActions", actions);
[42885] Fix | Delete
}
[42886] Fix | Delete
async fontFallback(id, handler) {
[42887] Fix | Delete
const translatedFonts = await Promise.all(this.fontCache);
[42888] Fix | Delete
for (const translatedFont of translatedFonts) {
[42889] Fix | Delete
if (translatedFont.loadedName === id) {
[42890] Fix | Delete
translatedFont.fallback(handler);
[42891] Fix | Delete
return;
[42892] Fix | Delete
}
[42893] Fix | Delete
}
[42894] Fix | Delete
}
[42895] Fix | Delete
async cleanup(manuallyTriggered = false) {
[42896] Fix | Delete
clearGlobalCaches();
[42897] Fix | Delete
this.globalImageCache.clear(manuallyTriggered);
[42898] Fix | Delete
this.pageKidsCountCache.clear();
[42899] Fix | Delete
this.pageIndexCache.clear();
[42900] Fix | Delete
this.nonBlendModesSet.clear();
[42901] Fix | Delete
const translatedFonts = await Promise.all(this.fontCache);
[42902] Fix | Delete
for (const {
[42903] Fix | Delete
dict
[42904] Fix | Delete
} of translatedFonts) {
[42905] Fix | Delete
delete dict.cacheKey;
[42906] Fix | Delete
}
[42907] Fix | Delete
this.fontCache.clear();
[42908] Fix | Delete
this.builtInCMapCache.clear();
[42909] Fix | Delete
this.standardFontDataCache.clear();
[42910] Fix | Delete
this.systemFontCache.clear();
[42911] Fix | Delete
}
[42912] Fix | Delete
async getPageDict(pageIndex) {
[42913] Fix | Delete
const nodesToVisit = [this.toplevelPagesDict];
[42914] Fix | Delete
const visitedNodes = new RefSet();
[42915] Fix | Delete
const pagesRef = this._catDict.getRaw("Pages");
[42916] Fix | Delete
if (pagesRef instanceof Ref) {
[42917] Fix | Delete
visitedNodes.put(pagesRef);
[42918] Fix | Delete
}
[42919] Fix | Delete
const xref = this.xref,
[42920] Fix | Delete
pageKidsCountCache = this.pageKidsCountCache,
[42921] Fix | Delete
pageIndexCache = this.pageIndexCache;
[42922] Fix | Delete
let currentPageIndex = 0;
[42923] Fix | Delete
while (nodesToVisit.length) {
[42924] Fix | Delete
const currentNode = nodesToVisit.pop();
[42925] Fix | Delete
if (currentNode instanceof Ref) {
[42926] Fix | Delete
const count = pageKidsCountCache.get(currentNode);
[42927] Fix | Delete
if (count >= 0 && currentPageIndex + count <= pageIndex) {
[42928] Fix | Delete
currentPageIndex += count;
[42929] Fix | Delete
continue;
[42930] Fix | Delete
}
[42931] Fix | Delete
if (visitedNodes.has(currentNode)) {
[42932] Fix | Delete
throw new FormatError("Pages tree contains circular reference.");
[42933] Fix | Delete
}
[42934] Fix | Delete
visitedNodes.put(currentNode);
[42935] Fix | Delete
const obj = await xref.fetchAsync(currentNode);
[42936] Fix | Delete
if (obj instanceof Dict) {
[42937] Fix | Delete
let type = obj.getRaw("Type");
[42938] Fix | Delete
if (type instanceof Ref) {
[42939] Fix | Delete
type = await xref.fetchAsync(type);
[42940] Fix | Delete
}
[42941] Fix | Delete
if (isName(type, "Page") || !obj.has("Kids")) {
[42942] Fix | Delete
if (!pageKidsCountCache.has(currentNode)) {
[42943] Fix | Delete
pageKidsCountCache.put(currentNode, 1);
[42944] Fix | Delete
}
[42945] Fix | Delete
if (!pageIndexCache.has(currentNode)) {
[42946] Fix | Delete
pageIndexCache.put(currentNode, currentPageIndex);
[42947] Fix | Delete
}
[42948] Fix | Delete
if (currentPageIndex === pageIndex) {
[42949] Fix | Delete
return [obj, currentNode];
[42950] Fix | Delete
}
[42951] Fix | Delete
currentPageIndex++;
[42952] Fix | Delete
continue;
[42953] Fix | Delete
}
[42954] Fix | Delete
}
[42955] Fix | Delete
nodesToVisit.push(obj);
[42956] Fix | Delete
continue;
[42957] Fix | Delete
}
[42958] Fix | Delete
if (!(currentNode instanceof Dict)) {
[42959] Fix | Delete
throw new FormatError("Page dictionary kid reference points to wrong type of object.");
[42960] Fix | Delete
}
[42961] Fix | Delete
const {
[42962] Fix | Delete
objId
[42963] Fix | Delete
} = currentNode;
[42964] Fix | Delete
let count = currentNode.getRaw("Count");
[42965] Fix | Delete
if (count instanceof Ref) {
[42966] Fix | Delete
count = await xref.fetchAsync(count);
[42967] Fix | Delete
}
[42968] Fix | Delete
if (Number.isInteger(count) && count >= 0) {
[42969] Fix | Delete
if (objId && !pageKidsCountCache.has(objId)) {
[42970] Fix | Delete
pageKidsCountCache.put(objId, count);
[42971] Fix | Delete
}
[42972] Fix | Delete
if (currentPageIndex + count <= pageIndex) {
[42973] Fix | Delete
currentPageIndex += count;
[42974] Fix | Delete
continue;
[42975] Fix | Delete
}
[42976] Fix | Delete
}
[42977] Fix | Delete
let kids = currentNode.getRaw("Kids");
[42978] Fix | Delete
if (kids instanceof Ref) {
[42979] Fix | Delete
kids = await xref.fetchAsync(kids);
[42980] Fix | Delete
}
[42981] Fix | Delete
if (!Array.isArray(kids)) {
[42982] Fix | Delete
let type = currentNode.getRaw("Type");
[42983] Fix | Delete
if (type instanceof Ref) {
[42984] Fix | Delete
type = await xref.fetchAsync(type);
[42985] Fix | Delete
}
[42986] Fix | Delete
if (isName(type, "Page") || !currentNode.has("Kids")) {
[42987] Fix | Delete
if (currentPageIndex === pageIndex) {
[42988] Fix | Delete
return [currentNode, null];
[42989] Fix | Delete
}
[42990] Fix | Delete
currentPageIndex++;
[42991] Fix | Delete
continue;
[42992] Fix | Delete
}
[42993] Fix | Delete
throw new FormatError("Page dictionary kids object is not an array.");
[42994] Fix | Delete
}
[42995] Fix | Delete
for (let last = kids.length - 1; last >= 0; last--) {
[42996] Fix | Delete
nodesToVisit.push(kids[last]);
[42997] Fix | Delete
}
[42998] Fix | Delete
}
[42999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function