mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-19 14:48:08 +02:00
Merge pull request #19475 from Snuffleupagus/injectLinkAnnotations-method-event
Move the auto-link handling into its own `PDFPageView` helper-method, and dispatch a "linkannotationsadded" event
This commit is contained in:
commit
c81a404138
1 changed files with 24 additions and 12 deletions
|
@ -536,6 +536,28 @@ class PDFPageView {
|
|||
this._textHighlighter.enable();
|
||||
}
|
||||
|
||||
async #injectLinkAnnotations(textLayerPromise) {
|
||||
let error = null;
|
||||
try {
|
||||
await textLayerPromise;
|
||||
|
||||
if (!this.annotationLayer) {
|
||||
return; // Rendering was cancelled while the textLayerPromise resolved.
|
||||
}
|
||||
await this.annotationLayer.injectLinkAnnotations({
|
||||
inferredLinks: Autolinker.processLinks(this),
|
||||
viewport: this.viewport,
|
||||
structTreeLayer: this.structTreeLayer,
|
||||
});
|
||||
} catch (ex) {
|
||||
console.error("#injectLinkAnnotations:", ex);
|
||||
error = ex;
|
||||
}
|
||||
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) {
|
||||
this.#dispatchLayerRendered("linkannotationsadded", error);
|
||||
}
|
||||
}
|
||||
|
||||
#resetCanvas() {
|
||||
const { canvas } = this;
|
||||
if (!canvas) {
|
||||
|
@ -1122,18 +1144,8 @@ class PDFPageView {
|
|||
if (this.annotationLayer) {
|
||||
await this.#renderAnnotationLayer();
|
||||
|
||||
if (this.#enableAutoLinking) {
|
||||
try {
|
||||
await textLayerPromise;
|
||||
|
||||
this.annotationLayer?.injectLinkAnnotations({
|
||||
inferredLinks: Autolinker.processLinks(this),
|
||||
viewport: this.viewport,
|
||||
structTreeLayer: this.structTreeLayer,
|
||||
});
|
||||
} catch (ex) {
|
||||
console.error("enableAutoLinking:", ex);
|
||||
}
|
||||
if (this.#enableAutoLinking && this.annotationLayer) {
|
||||
await this.#injectLinkAnnotations(textLayerPromise);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue