События не запускаются при открытии pdf во внешнем окне - PullRequest
0 голосов
/ 08 октября 2019

У меня проблема с событиями при открытии pdf во внешнем окне. Они не запускаются даже с атрибутом viewerId. Вот мой код:

HTML

 <a *ngIf="document.s3_link" class="document-title" (click)="openDocument(document)">{{ document.description }}</a
                    >
<ng2-pdfjs-viewer
        #externalPdfViewer
        viewerId="MyUniqueID"
        [externalWindow]="true"
        (onDocumentLoad)="highlightSearchTerm()"
    ></ng2-pdfjs-viewer>

TypeScript

openDocument(document): void {
        this.getDocumentBlob(document.s3_link).subscribe(res => {
            this.externalPdfViewer.pdfSrc = res
            this.externalPdfViewer.downloadFileName = document.description
            this.externalPdfViewer.refresh()
        })
    }

getDocumentBlob(link): Observable<any> {
        let headers = new HttpHeaders()
        headers = headers.set("Accept", "application/pdf")
        return this.http.get(link, { headers: headers, responseType: "blob" })
    }

    highlightSearchTerm() {
        this.externalPdfViewer.PDFViewerApplication.findController.executeCommand(
            "find",
            {
                caseSensitive: false,
                findPrevious: undefined,
                highlightAll: true,
                phraseSearch: true,
                query: this.initQuery,
            }
        )
    }

1 Ответ

0 голосов
/ 15 ноября 2019

Обнаружено это в документации по одной из проблем.

Когда вы открываете PDF в новом окне, события не могут быть отправлены обратно в прежнее окно.

Пожалуйста, посмотрите это SO: Связь между вкладками или окнами

Документация должна быть обновлена, чтобы отразить это. Используя вышеупомянутые методы, это может быть достигнуто, но это потребует улучшения / реализации.

...