首页 > 解决方案 > onDocumentLoad 未触发

问题描述

还有其他人发现ng2-pdfjs-viewerAngular 库不会触发该onDocumentLoad函数吗?

<ng2-pdfjs-viewer 
    #externalPdfViewer
    [viewerId]="pdfName"
    (onDocumentLoad)="onDocumentLoaded($event)"
    zoom="page-width"
    [fullScreen]=true
    [pdfSrc]="attachment.pdfName"
    [downloadFileName]="pdfName"> 
</ng2-pdfjs-viewer>

很多人已经注意到,如果 pdf在不同的窗口中打开,那么他们会得到这种行为,但对我来说,我的 pdf 在同一个窗口中。

“ng2-pdfjs-viewer.component.ts”文件包含一个receiveMessage函数,该onDocumentLoad函数将被调用,但我在该函数周围添加了一些日志记录,而整个函数永远不会被调用。

public receiveMessage(viewerEvent)  {
    ...
    else if (this.onDocumentLoad && event == "pagesLoaded") {
         this.onDocumentLoad.emit(param);
    }

我的 pdf 由库完美显示,但我需要知道 pdf 何时完成渲染,以便我可以搜索并突出显示其中的某些单词。

标签: ng2-pdfjs-viewer

解决方案


下面似乎对我有用

<ng2-pdfjs-viewer
  #pdfViewer
  [openFile]="false"
  [download]="true"
  [print]="true"
  [viewBookmark]="false"
  viewerId="document"
  (onDocumentLoad)="loadComplete()"
  pagemode="none"
>
</ng2-pdfjs-viewer>

看到的主要区别在于您的代码中您传递它,[viewerId]而我传递它时没有方括号


推荐阅读