UNPKG

@anohanafes/offline-document-viewer

Version:

🔒 完全离线的多格式文档预览器 - 支持PDF、DOCX、PPTX、XLSX、CSV,按需加载,支持URL预览

1,136 lines (1,135 loc) 2.02 MB
/** * @licstart The following is the entire license notice for the * Javascript code in this page * * Copyright 2021 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * @licend The above is the entire license notice for the * Javascript code in this page */ !function webpackUniversalModuleDefinition(e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define("pdfjs-dist/build/pdf.worker", [], t) : "object" == typeof exports ? exports["pdfjs-dist/build/pdf.worker"] = t() : e["pdfjs-dist/build/pdf.worker"] = e.pdfjsWorker = t() }(this, (function() { return ( () => { "use strict"; var e = [, (e, t, r) => { Object.defineProperty(t, "__esModule", { value: !0 }); t.WorkerTask = t.WorkerMessageHandler = void 0; var a = r(2) , i = r(5) , n = r(7) , s = r(64) , o = r(4) , c = r(89) , l = r(90) , h = r(9); class WorkerTask { constructor(e) { this.name = e; this.terminated = !1; this._capability = (0, a.createPromiseCapability)() } get finished() { return this._capability.promise } finish() { this._capability.resolve() } terminate() { this.terminated = !0 } ensureNotTerminated() { if (this.terminated) throw new Error("Worker task was terminated") } } t.WorkerTask = WorkerTask; class WorkerMessageHandler { static setup(e, t) { let r = !1; e.on("test", (function wphSetupTest(t) { if (r) return; r = !0; if (!(t instanceof Uint8Array)) { e.send("test", null); return } const a = 255 === t[0]; e.postMessageTransfers = a; e.send("test", { supportTransfers: a }) } )); e.on("configure", (function wphConfigure(e) { (0, a.setVerbosityLevel)(e.verbosity) } )); e.on("GetDocRequest", (function wphSetupDoc(e) { return WorkerMessageHandler.createDocumentHandler(e, t) } )) } static createDocumentHandler(e, t) { let r, o = !1, u = null; const d = [] , f = (0, a.getVerbosityLevel)() , g = e.apiVersion , p = "2.9.359"; if (g !== p) throw new Error(`The API version "${g}" does not match the Worker version "2.9.359".`); const m = []; for (const e in []) m.push(e); if (m.length) throw new Error("The `Array.prototype` contains unexpected enumerable properties: " + m.join(", ") + "; thus breaking e.g. `for...in` iteration of `Array`s."); if ("undefined" == typeof ReadableStream) throw new Error("The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream`); please use a `legacy`-build instead."); const b = e.docId , y = e.docBaseUrl , w = e.docId + "_worker"; let S = new c.MessageHandler(w,b,t); S.postMessageTransfers = e.postMessageTransfers; function ensureNotTerminated() { if (o) throw new Error("Worker was terminated") } function startWorkerTask(e) { d.push(e) } function finishWorkerTask(e) { e.finish(); const t = d.indexOf(e); d.splice(t, 1) } async function loadDocument(e) { await r.ensureDoc("checkHeader"); await r.ensureDoc("parseStartXRef"); await r.ensureDoc("parse", [e]); e || await r.ensureDoc("checkFirstPage"); const [t,a,i] = await Promise.all([r.ensureDoc("numPages"), r.ensureDoc("fingerprint"), r.ensureDoc("isPureXfa")]); if (i) { const e = new WorkerTask("loadXfaFonts"); startWorkerTask(e); await r.loadXfaFonts(S, e).catch((e => {} )).then(( () => finishWorkerTask(e))) } return { numPages: t, fingerprint: a, isPureXfa: i } } function getPdfManager(e, t, r) { const i = (0, a.createPromiseCapability)(); let s; const o = e.source; if (o.data) { try { s = new n.LocalPdfManager(b,o.data,o.password,t,r,y); i.resolve(s) } catch (e) { i.reject(e) } return i.promise } let c, h = []; try { c = new l.PDFWorkerStream(S) } catch (e) { i.reject(e); return i.promise } const d = c.getFullReader(); d.headersReady.then((function() { if (!d.isRangeSupported) return; const e = o.disableAutoFetch || d.isStreamingSupported; s = new n.NetworkPdfManager(b,c,{ msgHandler: S, password: o.password, length: d.contentLength, disableAutoFetch: e, rangeChunkSize: o.rangeChunkSize },t,r,y); for (let e = 0; e < h.length; e++) s.sendProgressiveData(h[e]); h = []; i.resolve(s); u = null } )).catch((function(e) { i.reject(e); u = null } )); let f = 0; new Promise((function(e, c) { const readChunk = function({value: e, done: l}) { try { ensureNotTerminated(); if (l) { s || function() { const e = (0, a.arraysToBytes)(h); o.length && e.length !== o.length && (0, a.warn)("reported HTTP length is different from actual"); try { s = new n.LocalPdfManager(b,e,o.password,t,r,y); i.resolve(s) } catch (e) { i.reject(e) } h = [] }(); u = null; return } f += (0, a.arrayByteLength)(e); d.isStreamingSupported || S.send("DocProgress", { loaded: f, total: Math.max(f, d.contentLength || 0) }); s ? s.sendProgressiveData(e) : h.push(e); d.read().then(readChunk, c) } catch (e) { c(e) } }; d.read().then(readChunk, c) } )).catch((function(e) { i.reject(e); u = null } )); u = function(e) { c.cancelAllRequests(e) } ; return i.promise } S.on("GetPage", (function wphSetupGetPage(e) { return r.getPage(e.pageIndex).then((function(e) { return Promise.all([r.ensure(e, "rotate"), r.ensure(e, "ref"), r.ensure(e, "userUnit"), r.ensure(e, "view")]).then((function([e,t,r,a]) { return { rotate: e, ref: t, userUnit: r, view: a } } )) } )) } )); S.on("GetPageIndex", (function wphSetupGetPageIndex({ref: e}) { const t = i.Ref.get(e.num, e.gen); return r.ensureCatalog("getPageIndex", [t]) } )); S.on("GetDestinations", (function wphSetupGetDestinations(e) { return r.ensureCatalog("destinations") } )); S.on("GetDestination", (function wphSetupGetDestination(e) { return r.ensureCatalog("getDestination", [e.id]) } )); S.on("GetPageLabels", (function wphSetupGetPageLabels(e) { return r.ensureCatalog("pageLabels") } )); S.on("GetPageLayout", (function wphSetupGetPageLayout(e) { return r.ensureCatalog("pageLayout") } )); S.on("GetPageMode", (function wphSetupGetPageMode(e) { return r.ensureCatalog("pageMode") } )); S.on("GetViewerPreferences", (function(e) { return r.ensureCatalog("viewerPreferences") } )); S.on("GetOpenAction", (function(e) { return r.ensureCatalog("openAction") } )); S.on("GetAttachments", (function wphSetupGetAttachments(e) { return r.ensureCatalog("attachments") } )); S.on("GetJavaScript", (function wphSetupGetJavaScript(e) { return r.ensureCatalog("javaScript") } )); S.on("GetDocJSActions", (function wphSetupGetDocJSActions(e) { return r.ensureCatalog("jsActions") } )); S.on("GetPageJSActions", (function({pageIndex: e}) { return r.getPage(e).then((function(e) { return r.ensure(e, "jsActions") } )) } )); S.on("GetPageXfa", (function wphSetupGetXfa({pageIndex: e}) { return r.getPage(e).then((function(e) { return r.ensure(e, "xfaData") } )) } )); S.on("GetOutline", (function wphSetupGetOutline(e) { return r.ensureCatalog("documentOutline") } )); S.on("GetOptionalContentConfig", (function(e) { return r.ensureCatalog("optionalContentConfig") } )); S.on("GetPermissions", (function(e) { return r.ensureCatalog("permissions") } )); S.on("GetMetadata", (function wphSetupGetMetadata(e) { return Promise.all([r.ensureDoc("documentInfo"), r.ensureCatalog("metadata")]) } )); S.on("GetMarkInfo", (function wphSetupGetMarkInfo(e) { return r.ensureCatalog("markInfo") } )); S.on("GetData", (function wphSetupGetData(e) { r.requestLoadedStream(); return r.onLoadedStream().then((function(e) { return e.bytes } )) } )); S.on("GetStats", (function wphSetupGetStats(e) { return r.ensureXRef("stats") } )); S.on("GetAnnotations", (function({pageIndex: e, intent: t}) { return r.getPage(e).then((function(e) { return e.getAnnotationsData(t) } )) } )); S.on("GetFieldObjects", (function(e) { return r.ensureDoc("fieldObjects") } )); S.on("HasJSActions", (function(e) { return r.ensureDoc("hasJSActions") } )); S.on("GetCalculationOrderIds", (function(e) { return r.ensureDoc("calculationOrderIds") } )); S.on("SaveDocument", (function({numPages: e, annotationStorage: t, filename: n}) { r.requestLoadedStream(); const o = [r.onLoadedStream(), r.ensureCatalog("acroForm"), r.ensureDoc("xref"), r.ensureDoc("startXRef")]; for (let a = 0; a < e; a++) o.push(r.getPage(a).then((function(e) { const r = new WorkerTask(`Save: page ${a}`); startWorkerTask(r); return e.save(S, r, t).finally((function() { finishWorkerTask(r) } )) } ))); return Promise.all(o).then((function([e,t,r,o,...c]) { let l = []; for (const e of c) l = e.filter((e => null !== e)).reduce(( (e, t) => e.concat(t)), l); if (0 === l.length) return e.bytes; const h = t instanceof i.Dict && t.get("XFA") || []; let u = null; if (Array.isArray(h)) for (let e = 0, t = h.length; e < t; e += 2) "datasets" === h[e] && (u = h[e + 1]); else (0, a.warn)("Unsupported XFA type."); let d = Object.create(null); if (r.trailer) { const e = Object.create(null) , t = r.trailer.get("Info") || null; t instanceof i.Dict && t.forEach(( (t, r) => { (0, a.isString)(t) && (0, a.isString)(r) && (e[t] = (0, a.stringToPDFString)(r)) } )); d = { rootRef: r.trailer.getRaw("Root") || null, encryptRef: r.trailer.getRaw("Encrypt") || null, newRef: r.getNewRef(), infoRef: r.trailer.getRaw("Info") || null, info: e, fileIds: r.trailer.get("ID") || null, startXRef: o, filename: n } } r.resetNewRef(); return (0, s.incrementalUpdate)({ originalData: e.bytes, xrefInfo: d, newRefs: l, xref: r, datasetsRef: u }) } )) } )); S.on("GetOperatorList", (function wphSetupRenderPage(e, t) { const i = e.pageIndex; r.getPage(i).then((function(r) { const n = new WorkerTask(`GetOperatorList: page ${i}`); startWorkerTask(n); const s = f >= a.VerbosityLevel.INFOS ? Date.now() : 0; r.getOperatorList({ handler: S, sink: t, task: n, intent: e.intent, renderInteractiveForms: e.renderInteractiveForms, annotationStorage: e.annotationStorage }).then((function(e) { finishWorkerTask(n); s && (0, a.info)(`page=${i + 1} - getOperatorList: time=${Date.now() - s}ms, len=${e.length}`); t.close() } ), (function(e) { finishWorkerTask(n); if (!n.terminated) { S.send("UnsupportedFeature", { featureId: a.UNSUPPORTED_FEATURES.errorOperatorList }); t.error(e) } } )) } )) } )); S.on("GetTextContent", (function wphExtractText(e, t) { const i = e.pageIndex; t.onPull = function(e) {} ; t.onCancel = function(e) {} ; r.getPage(i).then((function(r) { const n = new WorkerTask("GetTextContent: page " + i); startWorkerTask(n); const s = f >= a.VerbosityLevel.INFOS ? Date.now() : 0; r.extractTextContent({ handler: S, task: n, sink: t, normalizeWhitespace: e.normalizeWhitespace, includeMarkedContent: e.includeMarkedContent, combineTextItems: e.combineTextItems }).then((function() { finishWorkerTask(n); s && (0, a.info)(`page=${i + 1} - getTextContent: time=` + (Date.now() - s) + "ms"); t.close() } ), (function(e) { finishWorkerTask(n); n.terminated || t.error(e) } )) } )) } )); S.on("GetStructTree", (function wphGetStructTree(e) { return r.getPage(e.pageIndex).then((function(e) { return r.ensure(e, "getStructTree") } )) } )); S.on("FontFallback", (function(e) { return r.fontFallback(e.id, S) } )); S.on("Cleanup", (function wphCleanup(e) { return r.cleanup(!0) } )); S.on("Terminate", (function wphTerminate(e) { o = !0; const t = []; if (r) { r.terminate(new a.AbortException("Worker was terminated.")); const e = r.cleanup(); t.push(e); r = null } else (0, i.clearPrimitiveCaches)(); u && u(new a.AbortException("Worker was terminated.")); for (const e of d) { t.push(e.finished); e.terminate() } return Promise.all(t).then((function() { S.destroy(); S = null } )) } )); S.on("Ready", (function wphReady(t) { !function setupDoc(e) { function onSuccess(e) { ensureNotTerminated(); S.send("GetDoc", { pdfInfo: e }) } function onFailure(e) { ensureNotTerminated(); if (e instanceof a.PasswordException) { const t = new WorkerTask(`PasswordException: response ${e.code}`); startWorkerTask(t); S.sendWithPromise("PasswordRequest", e).then((function({password: e}) { finishWorkerTask(t); r.updatePassword(e); pdfManagerReady() } )).catch((function() { finishWorkerTask(t); S.send("DocException", e) } )) } else e instanceof a.InvalidPDFException || e instanceof a.MissingPDFException || e instanceof a.UnexpectedResponseException || e instanceof a.UnknownErrorException ? S.send("DocException", e) : S.send("DocException", new a.UnknownErrorException(e.message,e.toString())) } function pdfManagerReady() { ensureNotTerminated(); loadDocument(!1).then(onSuccess, (function(e) { ensureNotTerminated(); if (e instanceof h.XRefParseException) { r.requestLoadedStream(); r.onLoadedStream().then((function() { ensureNotTerminated(); loadDocument(!0).then(onSuccess, onFailure) } )) } else onFailure(e) } )) } ensureNotTerminated(); getPdfManager(e, { maxImageSize: e.maxImageSize, disableFontFace: e.disableFontFace, ignoreErrors: e.ignoreErrors, isEvalSupported: e.isEvalSupported, fontExtraProperties: e.fontExtraProperties }, e.enableXfa).then((function(e) { if (o) { e.terminate(new a.AbortException("Worker was terminated.")); throw new Error("Worker was terminated") } r = e; r.onLoadedStream().then((function(e) { S.send("DataLoaded", { length: e.bytes.byteLength }) } )) } )).then(pdfManagerReady, onFailure) }(e); e = null } )); return w } static initializeFromPort(e) { const t = new c.MessageHandler("worker","main",e); WorkerMessageHandler.setup(t, e); t.send("ready", null) } } t.WorkerMessageHandler = WorkerMessageHandler; "undefined" == typeof window && !o.isNodeJS && "undefined" != typeof self && function isMessagePort(e) { return "function" == typeof e.postMessage && "onmessage"in e }(self) && WorkerMessageHandler.initializeFromPort(self) } , (e, t, r) => { Object.defineProperty(t, "__esModule", { value: !0 }); t.arrayByteLength = arrayByteLength; t.arraysToBytes = function arraysToBytes(e) { const t = e.length; if (1 === t && e[0]instanceof Uint8Array) return e[0]; let r = 0; for (let a = 0; a < t; a++) r += arrayByteLength(e[a]); let a = 0; const i = new Uint8Array(r); for (let r = 0; r < t; r++) { let t = e[r]; t instanceof Uint8Array || (t = "string" == typeof t ? stringToBytes(t) : new Uint8Array(t)); const n = t.byteLength; i.set(t, a); a += n } return i } ; t.assert = assert; t.bytesToString = function bytesToString(e) { assert(null !== e && "object" == typeof e && void 0 !== e.length, "Invalid argument for bytesToString"); const t = e.length , r = 8192; if (t < r) return String.fromCharCode.apply(null, e); const a = []; for (let i = 0; i < t; i += r) { const n = Math.min(i + r, t) , s = e.subarray(i, n); a.push(String.fromCharCode.apply(null, s)) } return a.join("") } ; t.createObjectURL = function createObjectURL(e, t="", r=!1) { if (URL.createObjectURL && !r) return URL.createObjectURL(new Blob([e],{ type: t })); const a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; let i = `data:${t};base64,`; for (let t = 0, r = e.length; t < r; t += 3) { const n = 255 & e[t] , s = 255 & e[t + 1] , o = 255 & e[t + 2]; i += a[n >> 2] + a[(3 & n) << 4 | s >> 4] + a[t + 1 < r ? (15 & s) << 2 | o >> 6 : 64] + a[t + 2 < r ? 63 & o : 64] } return i } ; t.createPromiseCapability = function createPromiseCapability() { const e = Object.create(null); let t = !1; Object.defineProperty(e, "settled", { get: () => t }); e.promise = new Promise((function(r, a) { e.resolve = function(e) { t = !0; r(e) } ; e.reject = function(e) { t = !0; a(e) } } )); return e } ; t.createValidAbsoluteUrl = function createValidAbsoluteUrl(e, t) { if (!e) return null; try { const r = t ? new URL(e,t) : new URL(e); if (function _isValidProtocol(e) { if (!e) return !1; switch (e.protocol) { case "http:": case "https:": case "ftp:": case "mailto:": case "tel:": return !0; default: return !1 } }(r)) return r } catch (e) {} return null } ; t.escapeString = function escapeString(e) { return e.replace(/([()\\\n\r])/g, (e => "\n" === e ? "\\n" : "\r" === e ? "\\r" : `\\${e}`)) } ; t.getModificationDate = function getModificationDate(e=new Date) { return [e.getUTCFullYear().toString(), (e.getUTCMonth() + 1).toString().padStart(2, "0"), e.getUTCDate().toString().padStart(2, "0"), e.getUTCHours().toString().padStart(2, "0"), e.getUTCMinutes().toString().padStart(2, "0"), e.getUTCSeconds().toString().padStart(2, "0")].join("") } ; t.getVerbosityLevel = function getVerbosityLevel() { return i } ; t.info = function info(e) { i >= a.INFOS && console.log(`Info: ${e}`) } ; t.isArrayBuffer = function isArrayBuffer(e) { return "object" == typeof e && null !== e && void 0 !== e.byteLength } ; t.isArrayEqual = function isArrayEqual(e, t) { if (e.length !== t.length) return !1; for (let r = 0, a = e.length; r < a; r++) if (e[r] !== t[r]) return !1; return !0 } ; t.isAscii = function isAscii(e) { return /^[\x00-\x7F]*$/.test(e) } ; t.isBool = function isBool(e) { return "boolean" == typeof e } ; t.isNum = function isNum(e) { return "number" == typeof e } ; t.isSameOrigin = function isSameOrigin(e, t) { let r; try { r = new URL(e); if (!r.origin || "null" === r.origin) return !1 } catch (e) { return !1 } const a = new URL(t,r); return r.origin === a.origin } ; t.isString = function isString(e) { return "string" == typeof e } ; t.objectFromMap = function objectFromMap(e) { const t = Object.create(null); for (const [r,a] of e) t[r] = a; return t } ; t.objectSize = function objectSize(e) { return Object.keys(e).length } ; t.removeNullCharacters = function removeNullCharacters(e) { if ("string" != typeof e) { warn("The argument for removeNullCharacters must be a string."); return e } return e.replace(s, "") } ; t.setVerbosityLevel = function setVerbosityLevel(e) { Number.isInteger(e) && (i = e) } ; t.shadow = shadow; t.string32 = function string32(e) { return String.fromCharCode(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e) } ; t.stringToBytes = stringToBytes; t.stringToPDFString = function stringToPDFString(e) { const t = e.length , r = []; if ("þ" === e[0] && "ÿ" === e[1]) for (let a = 2; a < t; a += 2) r.push(String.fromCharCode(e.charCodeAt(a) << 8 | e.charCodeAt(a + 1))); else if ("ÿ" === e[0] && "þ" === e[1]) for (let a = 2; a < t; a += 2) r.push(String.fromCharCode(e.charCodeAt(a + 1) << 8 | e.charCodeAt(a))); else for (let a = 0; a < t; ++a) { const t = h[e.charCodeAt(a)]; r.push(t ? String.fromCharCode(t) : e.charAt(a)) } return r.join("") } ; t.stringToUTF16BEString = function stringToUTF16BEString(e) { const t = ["þÿ"]; for (let r = 0, a = e.length; r < a; r++) { const a = e.charCodeAt(r); t.push(String.fromCharCode(a >> 8 & 255), String.fromCharCode(255 & a)) } return t.join("") } ; t.stringToUTF8String = function stringToUTF8String(e) { return decodeURIComponent(escape(e)) } ; t.unreachable = unreachable; t.utf8StringToString = function utf8StringToString(e) { return unescape(encodeURIComponent(e)) } ; t.warn = warn; t.VerbosityLevel = t.Util = t.UNSUPPORTED_FEATURES = t.UnknownErrorException = t.UnexpectedResponseException = t.TextRenderingMode = t.StreamType = t.PermissionFlag = t.PasswordResponses = t.PasswordException = t.PageActionEventType = t.OPS = t.MissingPDFException = t.IsLittleEndianCached = t.IsEvalSupportedCached = t.InvalidPDFException = t.ImageKind = t.IDENTITY_MATRIX = t.FormatError = t.FontType = t.FONT_IDENTITY_MATRIX = t.DocumentActionEventType = t.CMapCompressionType = t.BaseException = t.AnnotationType = t.AnnotationStateModelType = t.AnnotationReviewState = t.AnnotationReplyType = t.AnnotationMarkedState = t.AnnotationFlag = t.AnnotationFieldFlag = t.AnnotationBorderStyleType = t.AnnotationActionEventType = t.AbortException = void 0; r(3); t.IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; t.FONT_IDENTITY_MATRIX = [.001, 0, 0, .001, 0, 0]; t.PermissionFlag = { PRINT: 4, MODIFY_CONTENTS: 8, COPY: 16, MODIFY_ANNOTATIONS: 32, FILL_INTERACTIVE_FORMS: 256, COPY_FOR_ACCESSIBILITY: 512, ASSEMBLE: 1024, PRINT_HIGH_QUALITY: 2048 }; t.TextRenderingMode = { FILL: 0, STROKE: 1, FILL_STROKE: 2, INVISIBLE: 3, FILL_ADD_TO_PATH: 4, STROKE_ADD_TO_PATH: 5, FILL_STROKE_ADD_TO_PATH: 6, ADD_TO_PATH: 7, FILL_STROKE_MASK: 3, ADD_TO_PATH_FLAG: 4 }; t.ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; t.AnnotationType = { TEXT: 1, LINK: 2, FREETEXT: 3, LINE: 4, SQUARE: 5, CIRCLE: 6, POLYGON: 7, POLYLINE: 8, HIGHLIGHT: 9, UNDERLINE: 10, SQUIGGLY: 11, STRIKEOUT: 12, STAMP: 13, CARET: 14, INK: 15, POPUP: 16, FILEATTACHMENT: 17, SOUND: 18, MOVIE: 19, WIDGET: 20, SCREEN: 21, PRINTERMARK: 22, TRAPNET: 23, WATERMARK: 24, THREED: 25, REDACT: 26 }; t.AnnotationStateModelType = { MARKED: "Marked", REVIEW: "Review" }; t.AnnotationMarkedState = { MARKED: "Marked", UNMARKED: "Unmarked" }; t.AnnotationReviewState = { ACCEPTED: "Accepted", REJECTED: "Rejected", CANCELLED: "Cancelled", COMPLETED: "Completed", NONE: "None" }; t.AnnotationReplyType = { GROUP: "Group", REPLY: "R" }; t.AnnotationFlag = { INVISIBLE: 1, HIDDEN: 2, PRINT: 4, NOZOOM: 8, NOROTATE: 16, NOVIEW: 32, READONLY: 64, LOCKED: 128, TOGGLENOVIEW: 256, LOCKEDCONTENTS: 512 }; t.AnnotationFieldFlag = { READONLY: 1, REQUIRED: 2, NOEXPORT: 4, MULTILINE: 4096, PASSWORD: 8192, NOTOGGLETOOFF: 16384, RADIO: 32768, PUSHBUTTON: 65536, COMBO: 131072, EDIT: 262144, SORT: 524288, FILESELECT: 1048576, MULTISELECT: 2097152, DONOTSPELLCHECK: 4194304, DONOTSCROLL: 8388608, COMB: 16777216, RICHTEXT: 33554432, RADIOSINUNISON: 33554432, COMMITONSELCHANGE: 67108864 }; t.AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, INSET: 4, UNDERLINE: 5 }; t.AnnotationActionEventType = { E: "Mouse Enter", X: "Mouse Exit", D: "Mouse Down", U: "Mouse Up", Fo: "Focus", Bl: "Blur", PO: "PageOpen", PC: "PageClose", PV: "PageVisible", PI: "PageInvisible", K: "Keystroke", F: "Format", V: "Validate", C: "Calculate" }; t.DocumentActionEventType = { WC: "WillClose", WS: "WillSave", DS: "DidSave", WP: "WillPrint", DP: "DidPrint" }; t.PageActionEventType = { O: "PageOpen", C: "PageClose" }; t.StreamType = { UNKNOWN: "UNKNOWN", FLATE: "FLATE", LZW: "LZW", DCT: "DCT", JPX: "JPX", JBIG: "JBIG", A85: "A85", AHX: "AHX", CCF: "CCF", RLX: "RLX" }; t.FontType = { UNKNOWN: "UNKNOWN", TYPE1: "TYPE1", TYPE1C: "TYPE1C", CIDFONTTYPE0: "CIDFONTTYPE0", CIDFONTTYPE0C: "CIDFONTTYPE0C", TRUETYPE: "TRUETYPE", CIDFONTTYPE2: "CIDFONTTYPE2", TYPE3: "TYPE3", OPENTYPE: "OPENTYPE", TYPE0: "TYPE0", MMTYPE1: "MMTYPE1" }; const a = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; t.VerbosityLevel = a; t.CMapCompressionType = { NONE: 0, BINARY: 1, STREAM: 2 }; t.OPS = { dependency: 1, setLineWidth: 2, setLineCap: 3, setLineJoin: 4, setMiterLimit: 5, setDash: 6, setRenderingIntent: 7, setFlatness: 8, setGState: 9, save: 10, restore: 11, transform: 12, moveTo: 13, lineTo: 14, curveTo: 15, curveTo2: 16, curveTo3: 17, closePath: 18, rectangle: 19, stroke: 20, closeStroke: 21, fill: 22, eoFill: 23, fillStroke: 24, eoFillStroke: 25, closeFillStroke: 26, closeEOFillStroke: 27, endPath: 28, clip: 29, eoClip: 30, beginText: 31, endText: 32, setCharSpacing: 33, setWordSpacing: 34, setHScale: 35, setLeading: 36, setFont: 37, setTextRenderingMode: 38, setTextRise: 39, moveText: 40, setLeadingMoveText: 41, setTextMatrix: 42, nextLine: 43, showText: 44, showSpacedText: 45, nextLineShowText: 46, nextLineSetSpacingShowText: 47, setCharWidth: 48, setCharWidthAndBounds: 49, setStrokeColorSpace: 50, setFillColorSpace: 51, setStrokeColor: 52, setStrokeColorN: 53, setFillColor: 54, setFillColorN: 55, setStrokeGray: 56, setFillGray: 57, setStrokeRGBColor: 58, setFillRGBColor: 59, setStrokeCMYKColor: 60, setFillCMYKColor: 61, shadingFill: 62, beginInlineImage: 63, beginImageData: 64, endInlineImage: 65, paintXObject: 66, markPoint: 67, markPointProps: 68, beginMarkedContent: 69, beginMarkedContentProps: 70, endMarkedContent: 71, beginCompat: 72, endCompat: 73, paintFormXObjectBegin: 74, paintFormXObjectEnd: 75, beginGroup: 76, endGroup: 77, beginAnnotations: 78, endAnnotations: 79, beginAnnotation: 80, endAnnotation: 81, paintJpegXObject: 82, paintImageMaskXObject: 83, paintImageMaskXObjectGroup: 84, paintImageXObject: 85, paintInlineImageXObject: 86, paintInlineImageXObjectGroup: 87, paintImageXObjectRepeat: 88, paintImageMaskXObjectRepeat: 89, paintSolidColorImageMask: 90, constructPath: 91 }; t.UNSUPPORTED_FEATURES = { unknown: "unknown", forms: "forms", javaScript: "javaScript", signatures: "signatures", smask: "smask", shadingPattern: "shadingPattern", font: "font", errorTilingPattern: "errorTilingPattern", errorExtGState: "errorExtGState", errorXObject: "errorXObject", errorFontLoadType3: "errorFontLoadType3", errorFontState: "errorFontState", errorFontMissing: "errorFontMissing", errorFontTranslate: "errorFontTranslate", errorColorSpace: "errorColorSpace", errorOperatorList: "errorOperatorList", errorFontToUnicode: "errorFontToUnicode", errorFontLoadNative: "errorFontLoadNative", errorFontBuildPath: "errorFontBuildPath", errorFontGetPath: "errorFontGetPath", errorMarkedContent: "errorMarkedContent" }; t.PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; let i = a.WARNINGS; function warn(e) { i >= a.WARNINGS && console.log(`Warning: ${e}`) } function unreachable(e) { throw new Error(e) } function assert(e, t) { e || unreachable(t)