|
@@ -196,115 +196,123 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
viewPdf(pdfUrl, page, reference) {
|
|
|
+ let timer
|
|
|
+
|
|
|
+ const iframeLoadEvent = async () => {
|
|
|
+ const iframe = document.getElementById('pdf2js');
|
|
|
+ const viewerApp = iframe.contentWindow.PDFViewerApplication;
|
|
|
+ // console.log("PDFViewerApplication", viewerApp, viewerApp.eventBus)
|
|
|
+ await viewerApp.initializedPromise //等待pdf查看器初始化完成
|
|
|
+ // 监听 PDF 加载完成事件
|
|
|
+ // viewerApp.page = this.pdfPage1 // 传入需要让跳转页码的值
|
|
|
+ viewerApp.eventBus.on('documentloaded', () => {
|
|
|
+ viewerApp.page = this.pdfPage // 传入需要让跳转页码的值
|
|
|
+ iframe.contentWindow.postMessage("", '*') //传递要匹配的字符串
|
|
|
+ iframe.contentWindow.addEventListener('message', (e) => { //搜索高亮
|
|
|
+ viewerApp.findBar.findField.value = e.data
|
|
|
+ viewerApp.findBar.highlightAll.checked = true
|
|
|
+ viewerApp.findBar.dispatchEvent('highlightallchange')
|
|
|
+ }, false)
|
|
|
+ // console.log("pagesCount", viewerApp.pagesCount) //获取pdf总页数
|
|
|
+ // console.log('文档加载完毕!')
|
|
|
+
|
|
|
+ timer = setInterval(() => {
|
|
|
+ viewerApp.page = this.pdfPage
|
|
|
+ const iframeDocument = document.getElementById('pdf2js').contentWindow.document;
|
|
|
+ const pdfData = {
|
|
|
+ htmlElements: [],
|
|
|
+ textList: [],
|
|
|
+ trunkId: this.pdfDialogData.reference.id
|
|
|
+ }
|
|
|
+ $(iframeDocument).find(`.pdfViewer .page[data-page-number="${this.pdfPage}"] .textLayer span[role="presentation"]`).each((index, element) => {
|
|
|
+ // console.log(index, $(element).text())
|
|
|
+ pdfData.htmlElements.push(element)
|
|
|
+ pdfData.textList.push($(element).text())
|
|
|
+ // $(element).addClass("highlight")
|
|
|
+ })
|
|
|
+ if (pdfData.htmlElements.length === 0) {
|
|
|
+ console.log("1没有获取到文本!")
|
|
|
+ } else {
|
|
|
+ clearInterval(timer)
|
|
|
+ this.matchHighlight(pdfData)
|
|
|
+ }
|
|
|
+ }, 500)
|
|
|
+ });
|
|
|
+ // viewerApp.eventBus.on('pagesloaded', () => {
|
|
|
+ // alert('pagesloaded')
|
|
|
+ // viewerApp.page = this.pdfPage
|
|
|
+ // let timer = null
|
|
|
+ // timer = setInterval(() => {
|
|
|
+ // viewerApp.page = this.pdfPage
|
|
|
+ // const iframeDocument = document.getElementById('pdf2js').contentWindow.document;
|
|
|
+ // const pdfData = {
|
|
|
+ // htmlElements: [],
|
|
|
+ // textList: [],
|
|
|
+ // trunkId: reference.id
|
|
|
+ // }
|
|
|
+ // $(iframeDocument).find(`.pdfViewer .page[data-page-number="${page}"] .textLayer span[role="presentation"]`).each((index, element) => {
|
|
|
+ // // console.log(index, $(element).text())
|
|
|
+ // pdfData.htmlElements.push(element)
|
|
|
+ // pdfData.textList.push($(element).text())
|
|
|
+ // // $(element).addClass("highlight")
|
|
|
+ // })
|
|
|
+ // if (pdfData.htmlElements.length === 0) {
|
|
|
+ // } else {
|
|
|
+ // clearInterval(timer)
|
|
|
+ // this.matchHighlight(pdfData)
|
|
|
+ // }
|
|
|
+ // }, 200)
|
|
|
+ // // console.log('PDF 页面渲染完成');
|
|
|
+ // });
|
|
|
+ }
|
|
|
+ if (!this.pdfUrl) {
|
|
|
+ document.getElementById('pdf2js').addEventListener('load', iframeLoadEvent);
|
|
|
+ }
|
|
|
+
|
|
|
const isPdfUrlChange = this.pdfUrl !== pdfUrl;
|
|
|
this.pdfUrl = pdfUrl
|
|
|
this.pdfDialogData.visible = false
|
|
|
this.pdfShow = true;
|
|
|
this.pdfPage = page || 1
|
|
|
- let timer
|
|
|
- // alert(page)
|
|
|
+
|
|
|
this.$nextTick(() => {
|
|
|
// 获取 iframe 元素
|
|
|
+ // console.log("我是nextTick")
|
|
|
const iframe = document.getElementById('pdf2js');
|
|
|
if (isPdfUrlChange) { //pdf文件链接有改变,需要等待文件加载完毕
|
|
|
- iframe.addEventListener('load', async () => {
|
|
|
- const viewerApp = iframe.contentWindow.PDFViewerApplication;
|
|
|
- // console.log("PDFViewerApplication", viewerApp, viewerApp.eventBus)
|
|
|
- await viewerApp.initializedPromise //等待pdf查看器初始化完成
|
|
|
- // 监听 PDF 加载完成事件
|
|
|
- // viewerApp.page = this.pdfPage1 // 传入需要让跳转页码的值
|
|
|
- viewerApp.eventBus.on('documentloaded', () => {
|
|
|
- viewerApp.page = this.pdfPage // 传入需要让跳转页码的值
|
|
|
- iframe.contentWindow.postMessage("", '*') //传递要匹配的字符串
|
|
|
- iframe.contentWindow.addEventListener('message', (e) => { //搜索高亮
|
|
|
- viewerApp.findBar.findField.value = e.data
|
|
|
- viewerApp.findBar.highlightAll.checked = true
|
|
|
- viewerApp.findBar.dispatchEvent('highlightallchange')
|
|
|
- }, false)
|
|
|
- // console.log("pagesCount", viewerApp.pagesCount) //获取pdf总页数
|
|
|
- // console.log('文档加载完毕!')
|
|
|
-
|
|
|
- timer = setInterval(() => {
|
|
|
- viewerApp.page = this.pdfPage
|
|
|
- const iframeDocument = document.getElementById('pdf2js').contentWindow.document;
|
|
|
- const pdfData = {
|
|
|
- htmlElements: [],
|
|
|
- textList: [],
|
|
|
- trunkId: reference.id
|
|
|
- }
|
|
|
- $(iframeDocument).find(`.pdfViewer .page[data-page-number="${this.pdfPage}"] .textLayer span[role="presentation"]`).each((index, element) => {
|
|
|
- // console.log(index, $(element).text())
|
|
|
- pdfData.htmlElements.push(element)
|
|
|
- pdfData.textList.push($(element).text())
|
|
|
- // $(element).addClass("highlight")
|
|
|
- })
|
|
|
- if (pdfData.htmlElements.length === 0) {
|
|
|
- console.log("1没有获取到文本!")
|
|
|
- } else {
|
|
|
- clearInterval(timer)
|
|
|
- this.matchHighlight(pdfData)
|
|
|
- }
|
|
|
- }, 500)
|
|
|
- });
|
|
|
- // viewerApp.eventBus.on('pagesloaded', () => {
|
|
|
- // alert('pagesloaded')
|
|
|
- // viewerApp.page = this.pdfPage
|
|
|
- // let timer = null
|
|
|
- // timer = setInterval(() => {
|
|
|
- // viewerApp.page = this.pdfPage
|
|
|
- // const iframeDocument = document.getElementById('pdf2js').contentWindow.document;
|
|
|
- // const pdfData = {
|
|
|
- // htmlElements: [],
|
|
|
- // textList: [],
|
|
|
- // trunkId: reference.id
|
|
|
- // }
|
|
|
- // $(iframeDocument).find(`.pdfViewer .page[data-page-number="${page}"] .textLayer span[role="presentation"]`).each((index, element) => {
|
|
|
- // // console.log(index, $(element).text())
|
|
|
- // pdfData.htmlElements.push(element)
|
|
|
- // pdfData.textList.push($(element).text())
|
|
|
- // // $(element).addClass("highlight")
|
|
|
- // })
|
|
|
- // if (pdfData.htmlElements.length === 0) {
|
|
|
- // } else {
|
|
|
- // clearInterval(timer)
|
|
|
- // this.matchHighlight(pdfData)
|
|
|
- // }
|
|
|
- // }, 200)
|
|
|
- // // console.log('PDF 页面渲染完成');
|
|
|
- // });
|
|
|
-
|
|
|
- });
|
|
|
+ // iframe.removeEventListener('load', iframeLoadEvent);
|
|
|
+ // iframe.addEventListener('load', iframeLoadEvent);
|
|
|
} else {
|
|
|
const viewerApp = iframe.contentWindow.PDFViewerApplication;
|
|
|
viewerApp.page = this.pdfPage // 传入需要让跳转页码的值
|
|
|
- iframe.contentWindow.postMessage("", '*') //传递要匹配的字符串
|
|
|
- iframe.contentWindow.addEventListener('message', (e) => { //搜索高亮
|
|
|
- viewerApp.findBar.findField.value = e.data
|
|
|
- viewerApp.findBar.highlightAll.checked = true
|
|
|
- viewerApp.findBar.dispatchEvent('highlightallchange')
|
|
|
-
|
|
|
- timer = setInterval(() => {
|
|
|
- const iframeDocument = document.getElementById('pdf2js').contentWindow.document;
|
|
|
- const pdfData = {
|
|
|
- htmlElements: [],
|
|
|
- textList: [],
|
|
|
- trunkId: reference.id
|
|
|
- }
|
|
|
- $(iframeDocument).find(`.pdfViewer .page[data-page-number="${page}"] .textLayer span[role="presentation"]`).each((index, element) => {
|
|
|
- // console.log(index, $(element).text())
|
|
|
- pdfData.htmlElements.push(element)
|
|
|
- pdfData.textList.push($(element).text())
|
|
|
- // $(element).addClass("highlight")
|
|
|
- })
|
|
|
- if (pdfData.htmlElements.length === 0) {
|
|
|
- console.log("2没有获取到文本!")
|
|
|
- } else {
|
|
|
- clearInterval(timer)
|
|
|
- this.matchHighlight(pdfData)
|
|
|
- }
|
|
|
-
|
|
|
- }, 200)
|
|
|
- }, false)
|
|
|
+ // iframe.contentWindow.postMessage("", '*') //传递要匹配的字符串
|
|
|
+ // iframe.contentWindow.addEventListener('message', (e) => { //搜索高亮
|
|
|
+ // viewerApp.findBar.findField.value = e.data
|
|
|
+ // viewerApp.findBar.highlightAll.checked = true
|
|
|
+ // viewerApp.findBar.dispatchEvent('highlightallchange')
|
|
|
+ // }, false)
|
|
|
+
|
|
|
+ timer = setInterval(() => {
|
|
|
+ viewerApp.page = this.pdfPage // 传入需要让跳转页码的值
|
|
|
+ const iframeDocument = document.getElementById('pdf2js').contentWindow.document;
|
|
|
+ const pdfData = {
|
|
|
+ htmlElements: [],
|
|
|
+ textList: [],
|
|
|
+ trunkId: this.pdfDialogData.reference.id
|
|
|
+ }
|
|
|
+ $(iframeDocument).find(`.pdfViewer .page[data-page-number="${page}"] .textLayer span[role="presentation"]`).each((index, element) => {
|
|
|
+ // console.log(index, $(element).text())
|
|
|
+ pdfData.htmlElements.push(element)
|
|
|
+ pdfData.textList.push($(element).text())
|
|
|
+ // $(element).addClass("highlight")
|
|
|
+ })
|
|
|
+ if (pdfData.htmlElements.length === 0) {
|
|
|
+ console.log("2没有获取到文本!")
|
|
|
+ } else {
|
|
|
+ clearInterval(timer)
|
|
|
+ this.matchHighlight(pdfData)
|
|
|
+ }
|
|
|
+ }, 200)
|
|
|
}
|
|
|
})
|
|
|
},
|