@embedpdf/engines 2.10.1 → 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-BpXqcQ3U.cjs +2 -0
- package/dist/browser-BpXqcQ3U.cjs.map +1 -0
- package/dist/{browser-BISJ9naB.js → browser-BuzIa755.js} +95 -6
- package/dist/browser-BuzIa755.js.map +1 -0
- package/dist/direct-engine-IJ8DmFTb.cjs +2 -0
- package/dist/direct-engine-IJ8DmFTb.cjs.map +1 -0
- package/dist/{direct-engine-4LZYs06h.js → direct-engine-oh_i6TH_.js} +351 -32
- package/dist/direct-engine-oh_i6TH_.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +18 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/converters/index.cjs +1 -1
- package/dist/lib/converters/index.js +1 -1
- package/dist/lib/image-encoder/bmp.d.ts +13 -0
- package/dist/lib/image-encoder/image-encoder-worker.d.ts +1 -1
- package/dist/lib/image-encoder/worker-pool.d.ts +1 -1
- package/dist/lib/orchestrator/pdf-engine.d.ts +5 -0
- package/dist/lib/orchestrator/remote-executor.d.ts +5 -0
- package/dist/lib/pdfium/cache.d.ts +1 -0
- package/dist/lib/pdfium/engine.d.ts +51 -7
- package/dist/lib/pdfium/index.cjs +1 -1
- package/dist/lib/pdfium/index.js +4 -4
- package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
- package/dist/lib/pdfium/web/direct-engine.js +3 -3
- package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
- package/dist/lib/pdfium/web/worker-engine.cjs.map +1 -1
- package/dist/lib/pdfium/web/worker-engine.js +147 -5
- package/dist/lib/pdfium/web/worker-engine.js.map +1 -1
- package/dist/lib/webworker/engine.cjs +1 -1
- package/dist/lib/webworker/engine.cjs.map +1 -1
- package/dist/lib/webworker/engine.d.ts +10 -0
- package/dist/lib/webworker/engine.js +79 -0
- package/dist/lib/webworker/engine.js.map +1 -1
- package/dist/{pdf-engine-sORqXhQk.js → pdf-engine-D9v0RfKe.js} +56 -3
- package/dist/pdf-engine-D9v0RfKe.js.map +1 -0
- package/dist/pdf-engine-DeiICuca.cjs +2 -0
- package/dist/{pdf-engine-BeHgaBOW.cjs.map → pdf-engine-DeiICuca.cjs.map} +1 -1
- package/dist/preact/index.cjs +1 -1
- package/dist/preact/index.js +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.js +1 -1
- package/dist/svelte/index.cjs +1 -1
- package/dist/svelte/index.js +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.js +1 -1
- package/package.json +7 -7
- package/dist/browser-13mzox-R.cjs +0 -2
- package/dist/browser-13mzox-R.cjs.map +0 -1
- package/dist/browser-BISJ9naB.js.map +0 -1
- package/dist/direct-engine-4LZYs06h.js.map +0 -1
- package/dist/direct-engine-C29Euebw.cjs +0 -2
- package/dist/direct-engine-C29Euebw.cjs.map +0 -1
- package/dist/pdf-engine-BeHgaBOW.cjs +0 -2
- package/dist/pdf-engine-sORqXhQk.js.map +0 -1
|
@@ -712,6 +712,42 @@ const _WebWorkerEngine = class _WebWorkerEngine {
|
|
|
712
712
|
this.proxy(task, request);
|
|
713
713
|
return task;
|
|
714
714
|
}
|
|
715
|
+
createDocument(id) {
|
|
716
|
+
this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "createDocument", id);
|
|
717
|
+
const requestId = this.generateRequestId(id);
|
|
718
|
+
const task = new WorkerTask(this.worker, requestId);
|
|
719
|
+
const request = createRequest(requestId, "createDocument", [id]);
|
|
720
|
+
this.proxy(task, request);
|
|
721
|
+
return task;
|
|
722
|
+
}
|
|
723
|
+
importPages(destDoc, srcDoc, srcPageIndices, insertIndex) {
|
|
724
|
+
this.logger.debug(
|
|
725
|
+
LOG_SOURCE,
|
|
726
|
+
LOG_CATEGORY,
|
|
727
|
+
"importPages",
|
|
728
|
+
destDoc.id,
|
|
729
|
+
srcDoc.id,
|
|
730
|
+
srcPageIndices
|
|
731
|
+
);
|
|
732
|
+
const requestId = this.generateRequestId(destDoc.id);
|
|
733
|
+
const task = new WorkerTask(this.worker, requestId);
|
|
734
|
+
const request = createRequest(requestId, "importPages", [
|
|
735
|
+
destDoc,
|
|
736
|
+
srcDoc,
|
|
737
|
+
srcPageIndices,
|
|
738
|
+
insertIndex
|
|
739
|
+
]);
|
|
740
|
+
this.proxy(task, request);
|
|
741
|
+
return task;
|
|
742
|
+
}
|
|
743
|
+
deletePage(doc, pageIndex) {
|
|
744
|
+
this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "deletePage", doc.id, pageIndex);
|
|
745
|
+
const requestId = this.generateRequestId(doc.id);
|
|
746
|
+
const task = new WorkerTask(this.worker, requestId);
|
|
747
|
+
const request = createRequest(requestId, "deletePage", [doc, pageIndex]);
|
|
748
|
+
this.proxy(task, request);
|
|
749
|
+
return task;
|
|
750
|
+
}
|
|
715
751
|
/**
|
|
716
752
|
* {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}
|
|
717
753
|
*
|
|
@@ -777,6 +813,49 @@ const _WebWorkerEngine = class _WebWorkerEngine {
|
|
|
777
813
|
this.proxy(task, request);
|
|
778
814
|
return task;
|
|
779
815
|
}
|
|
816
|
+
/**
|
|
817
|
+
* {@inheritDoc @embedpdf/models!PdfEngine.exportAnnotationAppearanceAsPdf}
|
|
818
|
+
*
|
|
819
|
+
* @public
|
|
820
|
+
*/
|
|
821
|
+
exportAnnotationAppearanceAsPdf(doc, page, annotation) {
|
|
822
|
+
this.logger.debug(
|
|
823
|
+
LOG_SOURCE,
|
|
824
|
+
LOG_CATEGORY,
|
|
825
|
+
"exportAnnotationAppearanceAsPdf",
|
|
826
|
+
doc,
|
|
827
|
+
page,
|
|
828
|
+
annotation
|
|
829
|
+
);
|
|
830
|
+
const requestId = this.generateRequestId(doc.id);
|
|
831
|
+
const task = new WorkerTask(this.worker, requestId);
|
|
832
|
+
const request = createRequest(requestId, "exportAnnotationAppearanceAsPdf", [
|
|
833
|
+
doc,
|
|
834
|
+
page,
|
|
835
|
+
annotation
|
|
836
|
+
]);
|
|
837
|
+
this.proxy(task, request);
|
|
838
|
+
return task;
|
|
839
|
+
}
|
|
840
|
+
exportAnnotationsAppearanceAsPdf(doc, page, annotations) {
|
|
841
|
+
this.logger.debug(
|
|
842
|
+
LOG_SOURCE,
|
|
843
|
+
LOG_CATEGORY,
|
|
844
|
+
"exportAnnotationsAppearanceAsPdf",
|
|
845
|
+
doc,
|
|
846
|
+
page,
|
|
847
|
+
annotations
|
|
848
|
+
);
|
|
849
|
+
const requestId = this.generateRequestId(doc.id);
|
|
850
|
+
const task = new WorkerTask(this.worker, requestId);
|
|
851
|
+
const request = createRequest(requestId, "exportAnnotationsAppearanceAsPdf", [
|
|
852
|
+
doc,
|
|
853
|
+
page,
|
|
854
|
+
annotations
|
|
855
|
+
]);
|
|
856
|
+
this.proxy(task, request);
|
|
857
|
+
return task;
|
|
858
|
+
}
|
|
780
859
|
/**
|
|
781
860
|
* {@inheritDoc @embedpdf/models!PdfEngine.extractText}
|
|
782
861
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfWidgetAnnoField,\n PdfAttachmentObject,\n PdfDocumentJavaScriptActionObject,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PdfPageTextRuns,\n PageTextSlice,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfPageSearchProgress,\n PdfRenderThumbnailOptions,\n PdfSearchAllPagesOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfRenderPageAnnotationOptions,\n PdfRenderPageOptions,\n PdfOpenDocumentUrlOptions,\n PdfOpenDocumentBufferOptions,\n PdfAnnotationsProgress,\n PdfPrintOptions,\n PdfBookmarkObject,\n PdfWidgetJavaScriptActionObject,\n PdfAddAttachmentParams,\n AnnotationAppearanceMap,\n ImageDataLike,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n id: string,\n name: M,\n args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n return {\n id,\n type: 'ExecuteRequest',\n data: {\n name,\n args,\n },\n };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n id: this.messageId,\n type: 'AbortRequest',\n });\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.progress}\n *\n * @override\n */\n progress(p: P) {\n super.progress(p);\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteProgress':\n task.progress(response.data);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentBuffer', file, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentBuffer', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setMetadata}\n *\n * @public\n */\n setMetadata(doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setMetadata', doc, metadata);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setMetadata', [doc, metadata]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocUserPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setBookmarks}\n *\n * @public\n */\n setBookmarks(doc: PdfDocumentObject, payload: PdfBookmarkObject[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setBookmarks', doc, payload);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setBookmarks', [doc, payload]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.deleteBookmarks}\n *\n * @public\n */\n deleteBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'deleteBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'deleteBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getSignatures', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRaw}\n *\n * @public\n */\n renderPageRaw(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRaw', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ImageDataLike>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRaw', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRectRaw}\n *\n * @public\n */\n renderPageRectRaw(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRectRaw', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ImageDataLike>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRectRaw', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderAnnotation', doc, page, annotation, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n renderPageAnnotations(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageAnnotations', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<AnnotationAppearanceMap<Blob>>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotations', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n renderPageAnnotationsRaw(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageAnnotationsRaw', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<AnnotationAppearanceMap<ImageDataLike>>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotationsRaw', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n *\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageFormFields}\n *\n * @public\n */\n getPageAnnoWidgets(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnoWidgets', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfWidgetAnnoObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnoWidgets', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n getDocumentJavaScriptActions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocumentJavaScriptActions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfDocumentJavaScriptActionObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocumentJavaScriptActions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n getPageWidgetJavaScriptActions(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageWidgetJavaScriptActions', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfWidgetJavaScriptActionObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageWidgetJavaScriptActions', [\n doc,\n page,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation<A extends PdfAnnotationObject>(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: A,\n context?: AnnotationCreateContext<A>,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'createPageAnnotations',\n doc,\n page,\n annotation,\n context,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n doc,\n page,\n annotation,\n context,\n ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n this.proxy(task, request);\n\n return task;\n }\n\n updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: { regenerateAppearance?: boolean },\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRects', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderThumbnailOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderThumbnail', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, options);\n\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n options,\n ]);\n\n this.proxy(task, request);\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'saveAsCopy', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.addAttachment}\n *\n * @public\n */\n addAttachment(doc: PdfDocumentObject, params: PdfAddAttachmentParams) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'addAttachment', doc, params);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'addAttachment', [doc, params]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removeAttachment}\n *\n * @public\n */\n removeAttachment(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeAttachment', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removeAttachment', [doc, attachment]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n doc,\n attachment,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n doc,\n page,\n annotation,\n value,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldState}\n *\n * @public\n */\n setFormFieldState(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n field: PdfWidgetAnnoField,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldState', doc, annotation, field);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldState', [\n doc,\n page,\n annotation,\n field,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n renameWidgetField(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n name: string,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renameWidgetField', doc, annotation, name);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renameWidgetField', [\n doc,\n page,\n annotation,\n name,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n shareWidgetField(\n doc: PdfDocumentObject,\n sourcePage: PdfPageObject,\n sourceAnnotation: PdfWidgetAnnoObject,\n targetPage: PdfPageObject,\n targetAnnotation: PdfWidgetAnnoObject,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'shareWidgetField',\n doc,\n sourceAnnotation,\n targetAnnotation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'shareWidgetField', [\n doc,\n sourcePage,\n sourceAnnotation,\n targetPage,\n targetAnnotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n regenerateWidgetAppearances(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotationIds: string[],\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'regenerateWidgetAppearances',\n doc,\n page,\n annotationIds,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'regenerateWidgetAppearances', [\n doc,\n page,\n annotationIds,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}\n *\n * @public\n */\n redactTextInRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'redactTextInRects', doc, page, rects, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'redactTextInRects', [\n doc,\n page,\n rects,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.applyRedaction}\n *\n * @public\n */\n applyRedaction(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'applyRedaction', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'applyRedaction', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.applyAllRedactions}\n *\n * @public\n */\n applyAllRedactions(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'applyAllRedactions', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'applyAllRedactions', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenAnnotation}\n *\n * @public\n */\n flattenAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRuns}\n *\n * @public\n */\n getPageTextRuns(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRuns', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageTextRuns>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRuns', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.preparePrintDocument}\n *\n * @public\n */\n preparePrintDocument(doc: PdfDocumentObject, options?: PdfPrintOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'preparePrintDocument', doc, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'preparePrintDocument', [\n doc,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'closeDocument', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeAllDocuments}\n *\n * @public\n */\n closeAllDocuments() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeAllDocuments');\n const requestId = this.generateRequestId('closeAllDocuments');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n const request: ExecuteRequest = createRequest(requestId, 'closeAllDocuments', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setDocumentEncryption}\n *\n * @public\n */\n setDocumentEncryption(\n doc: PdfDocumentObject,\n userPassword: string,\n ownerPassword: string,\n allowedFlags: number,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setDocumentEncryption', doc, allowedFlags);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setDocumentEncryption', [\n doc,\n userPassword,\n ownerPassword,\n allowedFlags,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removeEncryption}\n *\n * @public\n */\n removeEncryption(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeEncryption', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removeEncryption', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.unlockOwnerPermissions}\n *\n * @public\n */\n unlockOwnerPermissions(doc: PdfDocumentObject, ownerPassword: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'unlockOwnerPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'unlockOwnerPermissions', [\n doc,\n ownerPassword,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.isEncrypted}\n *\n * @public\n */\n isEncrypted(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'isEncrypted', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'isEncrypted', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.isOwnerUnlocked}\n *\n * @public\n */\n isOwnerUnlocked(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'isOwnerUnlocked', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'isOwnerUnlocked', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfWidgetAnnoField,\n PdfAttachmentObject,\n PdfDocumentJavaScriptActionObject,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PdfPageTextRuns,\n PageTextSlice,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfPageSearchProgress,\n PdfRenderThumbnailOptions,\n PdfSearchAllPagesOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfRenderPageAnnotationOptions,\n PdfRenderPageOptions,\n PdfOpenDocumentUrlOptions,\n PdfOpenDocumentBufferOptions,\n PdfAnnotationsProgress,\n PdfPrintOptions,\n PdfBookmarkObject,\n PdfWidgetJavaScriptActionObject,\n PdfAddAttachmentParams,\n AnnotationAppearanceMap,\n ImageDataLike,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n id: string,\n name: M,\n args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n return {\n id,\n type: 'ExecuteRequest',\n data: {\n name,\n args,\n },\n };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n id: this.messageId,\n type: 'AbortRequest',\n });\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.progress}\n *\n * @override\n */\n progress(p: P) {\n super.progress(p);\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteProgress':\n task.progress(response.data);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentBuffer', file, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentBuffer', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setMetadata}\n *\n * @public\n */\n setMetadata(doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setMetadata', doc, metadata);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setMetadata', [doc, metadata]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocUserPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setBookmarks}\n *\n * @public\n */\n setBookmarks(doc: PdfDocumentObject, payload: PdfBookmarkObject[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setBookmarks', doc, payload);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setBookmarks', [doc, payload]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.deleteBookmarks}\n *\n * @public\n */\n deleteBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'deleteBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'deleteBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getSignatures', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRaw}\n *\n * @public\n */\n renderPageRaw(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRaw', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ImageDataLike>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRaw', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRectRaw}\n *\n * @public\n */\n renderPageRectRaw(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRectRaw', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ImageDataLike>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRectRaw', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderAnnotation', doc, page, annotation, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n renderPageAnnotations(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageAnnotations', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<AnnotationAppearanceMap<Blob>>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotations', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n renderPageAnnotationsRaw(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageAnnotationsRaw', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<AnnotationAppearanceMap<ImageDataLike>>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotationsRaw', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n *\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageFormFields}\n *\n * @public\n */\n getPageAnnoWidgets(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnoWidgets', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfWidgetAnnoObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnoWidgets', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n getDocumentJavaScriptActions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocumentJavaScriptActions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfDocumentJavaScriptActionObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocumentJavaScriptActions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n getPageWidgetJavaScriptActions(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageWidgetJavaScriptActions', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfWidgetJavaScriptActionObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageWidgetJavaScriptActions', [\n doc,\n page,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation<A extends PdfAnnotationObject>(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: A,\n context?: AnnotationCreateContext<A>,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'createPageAnnotations',\n doc,\n page,\n annotation,\n context,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n doc,\n page,\n annotation,\n context,\n ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n this.proxy(task, request);\n\n return task;\n }\n\n updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: { regenerateAppearance?: boolean },\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRects', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderThumbnailOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderThumbnail', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, options);\n\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n options,\n ]);\n\n this.proxy(task, request);\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'saveAsCopy', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.addAttachment}\n *\n * @public\n */\n addAttachment(doc: PdfDocumentObject, params: PdfAddAttachmentParams) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'addAttachment', doc, params);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'addAttachment', [doc, params]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removeAttachment}\n *\n * @public\n */\n removeAttachment(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeAttachment', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removeAttachment', [doc, attachment]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n doc,\n attachment,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n doc,\n page,\n annotation,\n value,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldState}\n *\n * @public\n */\n setFormFieldState(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n field: PdfWidgetAnnoField,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldState', doc, annotation, field);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldState', [\n doc,\n page,\n annotation,\n field,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n renameWidgetField(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n name: string,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renameWidgetField', doc, annotation, name);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renameWidgetField', [\n doc,\n page,\n annotation,\n name,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n shareWidgetField(\n doc: PdfDocumentObject,\n sourcePage: PdfPageObject,\n sourceAnnotation: PdfWidgetAnnoObject,\n targetPage: PdfPageObject,\n targetAnnotation: PdfWidgetAnnoObject,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'shareWidgetField',\n doc,\n sourceAnnotation,\n targetAnnotation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'shareWidgetField', [\n doc,\n sourcePage,\n sourceAnnotation,\n targetPage,\n targetAnnotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n regenerateWidgetAppearances(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotationIds: string[],\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'regenerateWidgetAppearances',\n doc,\n page,\n annotationIds,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'regenerateWidgetAppearances', [\n doc,\n page,\n annotationIds,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n createDocument(id: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'createDocument', id);\n const requestId = this.generateRequestId(id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createDocument', [id]);\n this.proxy(task, request);\n\n return task;\n }\n\n importPages(\n destDoc: PdfDocumentObject,\n srcDoc: PdfDocumentObject,\n srcPageIndices: number[],\n insertIndex?: number,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'importPages',\n destDoc.id,\n srcDoc.id,\n srcPageIndices,\n );\n const requestId = this.generateRequestId(destDoc.id);\n const task = new WorkerTask<PdfPageObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'importPages', [\n destDoc,\n srcDoc,\n srcPageIndices,\n insertIndex,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n deletePage(doc: PdfDocumentObject, pageIndex: number) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'deletePage', doc.id, pageIndex);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'deletePage', [doc, pageIndex]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}\n *\n * @public\n */\n redactTextInRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'redactTextInRects', doc, page, rects, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'redactTextInRects', [\n doc,\n page,\n rects,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.applyRedaction}\n *\n * @public\n */\n applyRedaction(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'applyRedaction', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'applyRedaction', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.applyAllRedactions}\n *\n * @public\n */\n applyAllRedactions(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'applyAllRedactions', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'applyAllRedactions', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenAnnotation}\n *\n * @public\n */\n flattenAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.exportAnnotationAppearanceAsPdf}\n *\n * @public\n */\n exportAnnotationAppearanceAsPdf(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'exportAnnotationAppearanceAsPdf',\n doc,\n page,\n annotation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'exportAnnotationAppearanceAsPdf', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n exportAnnotationsAppearanceAsPdf(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotations: PdfAnnotationObject[],\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'exportAnnotationsAppearanceAsPdf',\n doc,\n page,\n annotations,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'exportAnnotationsAppearanceAsPdf', [\n doc,\n page,\n annotations,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRuns}\n *\n * @public\n */\n getPageTextRuns(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRuns', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageTextRuns>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRuns', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.preparePrintDocument}\n *\n * @public\n */\n preparePrintDocument(doc: PdfDocumentObject, options?: PdfPrintOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'preparePrintDocument', doc, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'preparePrintDocument', [\n doc,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'closeDocument', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeAllDocuments}\n *\n * @public\n */\n closeAllDocuments() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeAllDocuments');\n const requestId = this.generateRequestId('closeAllDocuments');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n const request: ExecuteRequest = createRequest(requestId, 'closeAllDocuments', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setDocumentEncryption}\n *\n * @public\n */\n setDocumentEncryption(\n doc: PdfDocumentObject,\n userPassword: string,\n ownerPassword: string,\n allowedFlags: number,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setDocumentEncryption', doc, allowedFlags);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setDocumentEncryption', [\n doc,\n userPassword,\n ownerPassword,\n allowedFlags,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removeEncryption}\n *\n * @public\n */\n removeEncryption(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeEncryption', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removeEncryption', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.unlockOwnerPermissions}\n *\n * @public\n */\n unlockOwnerPermissions(doc: PdfDocumentObject, ownerPassword: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'unlockOwnerPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'unlockOwnerPermissions', [\n doc,\n ownerPassword,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.isEncrypted}\n *\n * @public\n */\n isEncrypted(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'isEncrypted', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'isEncrypted', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.isOwnerUnlocked}\n *\n * @public\n */\n isOwnerUnlocked(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'isOwnerUnlocked', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'isOwnerUnlocked', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -544,7 +544,7 @@ class PdfEngine {
|
|
|
544
544
|
* Encode image using encoder pool or inline
|
|
545
545
|
*/
|
|
546
546
|
encodeImage(rawImageData, options, resultTask) {
|
|
547
|
-
const imageType = (options == null ? void 0 : options.imageType) ?? "image/
|
|
547
|
+
const imageType = (options == null ? void 0 : options.imageType) ?? "image/png";
|
|
548
548
|
const quality = options == null ? void 0 : options.quality;
|
|
549
549
|
const plainImageData = {
|
|
550
550
|
data: new Uint8ClampedArray(rawImageData.data),
|
|
@@ -557,7 +557,7 @@ class PdfEngine {
|
|
|
557
557
|
* Encode a full annotation appearance map to the output type T.
|
|
558
558
|
*/
|
|
559
559
|
encodeAppearanceMap(rawMap, options, resultTask) {
|
|
560
|
-
const imageType = (options == null ? void 0 : options.imageType) ?? "image/
|
|
560
|
+
const imageType = (options == null ? void 0 : options.imageType) ?? "image/png";
|
|
561
561
|
const quality = options == null ? void 0 : options.imageQuality;
|
|
562
562
|
const convertImage = (rawImageData) => {
|
|
563
563
|
const plainImageData = {
|
|
@@ -856,6 +856,33 @@ class PdfEngine {
|
|
|
856
856
|
{ priority: Priority.MEDIUM }
|
|
857
857
|
);
|
|
858
858
|
}
|
|
859
|
+
createDocument(id) {
|
|
860
|
+
return this.workerQueue.enqueue(
|
|
861
|
+
{
|
|
862
|
+
execute: () => this.executor.createDocument(id),
|
|
863
|
+
meta: { docId: id, operation: "createDocument" }
|
|
864
|
+
},
|
|
865
|
+
{ priority: Priority.MEDIUM }
|
|
866
|
+
);
|
|
867
|
+
}
|
|
868
|
+
importPages(destDoc, srcDoc, srcPageIndices, insertIndex) {
|
|
869
|
+
return this.workerQueue.enqueue(
|
|
870
|
+
{
|
|
871
|
+
execute: () => this.executor.importPages(destDoc, srcDoc, srcPageIndices, insertIndex),
|
|
872
|
+
meta: { docId: destDoc.id, operation: "importPages" }
|
|
873
|
+
},
|
|
874
|
+
{ priority: Priority.MEDIUM }
|
|
875
|
+
);
|
|
876
|
+
}
|
|
877
|
+
deletePage(doc, pageIndex) {
|
|
878
|
+
return this.workerQueue.enqueue(
|
|
879
|
+
{
|
|
880
|
+
execute: () => this.executor.deletePage(doc, pageIndex),
|
|
881
|
+
meta: { docId: doc.id, operation: "deletePage" }
|
|
882
|
+
},
|
|
883
|
+
{ priority: Priority.MEDIUM }
|
|
884
|
+
);
|
|
885
|
+
}
|
|
859
886
|
extractText(doc, pageIndexes) {
|
|
860
887
|
return this.workerQueue.enqueue(
|
|
861
888
|
{
|
|
@@ -901,6 +928,32 @@ class PdfEngine {
|
|
|
901
928
|
{ priority: Priority.MEDIUM }
|
|
902
929
|
);
|
|
903
930
|
}
|
|
931
|
+
exportAnnotationAppearanceAsPdf(doc, page, annotation) {
|
|
932
|
+
return this.workerQueue.enqueue(
|
|
933
|
+
{
|
|
934
|
+
execute: () => this.executor.exportAnnotationAppearanceAsPdf(doc, page, annotation),
|
|
935
|
+
meta: {
|
|
936
|
+
docId: doc.id,
|
|
937
|
+
pageIndex: page.index,
|
|
938
|
+
operation: "exportAnnotationAppearanceAsPdf"
|
|
939
|
+
}
|
|
940
|
+
},
|
|
941
|
+
{ priority: Priority.MEDIUM }
|
|
942
|
+
);
|
|
943
|
+
}
|
|
944
|
+
exportAnnotationsAppearanceAsPdf(doc, page, annotations) {
|
|
945
|
+
return this.workerQueue.enqueue(
|
|
946
|
+
{
|
|
947
|
+
execute: () => this.executor.exportAnnotationsAppearanceAsPdf(doc, page, annotations),
|
|
948
|
+
meta: {
|
|
949
|
+
docId: doc.id,
|
|
950
|
+
pageIndex: page.index,
|
|
951
|
+
operation: "exportAnnotationsAppearanceAsPdf"
|
|
952
|
+
}
|
|
953
|
+
},
|
|
954
|
+
{ priority: Priority.MEDIUM }
|
|
955
|
+
);
|
|
956
|
+
}
|
|
904
957
|
getTextSlices(doc, slices) {
|
|
905
958
|
return this.workerQueue.enqueue(
|
|
906
959
|
{
|
|
@@ -1059,4 +1112,4 @@ class PdfEngine {
|
|
|
1059
1112
|
export {
|
|
1060
1113
|
PdfEngine as P
|
|
1061
1114
|
};
|
|
1062
|
-
//# sourceMappingURL=pdf-engine-
|
|
1115
|
+
//# sourceMappingURL=pdf-engine-D9v0RfKe.js.map
|