我正在尝试使用PDFTron库显示并行PDF比较。
我能够成功地显示第一个比较,但是第二个比较没有按预期显示,控制台中没有记录错误。
包括图书馆
//included following libraries
<script src="pdftron/lib/webviewer.min.js"></script>
<script src="pdftron/lib/core/webviewer-core.min.js"></script>
<script src="pdftron/lib/core/pdf/PDFNet.js"></script>
var webViewerInstance = null;
var PDFNet = null;
var documentViewer = null;
创建实例并初始化PDFNet
$(function () {
WebViewer({
fullAPI: true,
path: 'NavResources/Scripts/pdftron/lib'
}, document.getElementById('viewer')).then(async instance => {
webViewerInstance= instance;
PDFNet = instance.Core.PDFNet;
documentViewer = instance.Core.documentViewer;
await PDFNet.initialize();
documentViewer.addEventListener('documentLoaded', () => { webViewerInstance.UI.setLayoutMode(webViewerInstance.UI.LayoutMode.FacingContinuous);
});
})
})
单击“比较”按钮的事件处理程序
async onClick_comparePDF(file1URL, file2Url) {
instances.UI.closeDocument().then(async x => {
console.log(x);
const newDoc = await PDFNet.PDFDoc.create();
await newDoc.lock();
const doc1 = await PDFNet.PDFDoc.createFromURL(file1URL);
const doc2 = await PDFNet.PDFDoc.createFromURL(file2Url);
await newDoc.appendTextDiffDoc(doc1, doc2);
await newDoc.unlock();
instances.UI.loadDocument(newDoc, { fileName: ccApp.report1 });
})
}
请参见下面的附加图像,它对于第一次比较工作正常,但是对于第二次比较,在查看器中没有显示,但是文档加载事件正在触发,在左侧面板中,没有页面显示,但没有加载主要内容。
第一次比较SS:
第二次比较SS:
发布于 2022-05-25 18:24:04
你的代码看起来是正确的。
我们正在内部研究这个问题,但是您可以通过在实例化disableVirtualDisplayMode时禁用虚拟显示模式( WebViewer : true)来解决这个问题。
下面是对我有用的代码片段:
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<script src='/lib/webviewer.min.js'></script>
<script src="/lib/core/webviewer-core.min.js"></script>
<script src="/lib/core/pdf/PDFNet.js"></script>
</head>
<body style='padding: 0; margin: 0'>
<button id='compareButton'>COMPARE</button>
<div id='viewer'></div>
<script>
WebViewer({
fullAPI: true,
disableVirtualDisplayMode: true,
path: '/lib'
}, document.getElementById('viewer')).then(async instance => {
const { documentViewer, PDFNet, DisplayModeManager } = instance.Core;
const { loadDocument, closeDocument } = instance.UI;
await PDFNet.initialize();
documentViewer.addEventListener('documentLoaded', () => {
instance.UI.setLayoutMode(instance.UI.LayoutMode.FacingContinuous);
});
document.getElementById('compareButton').addEventListener('click', async () => {
const newDoc = await PDFNet.PDFDoc.create();
await newDoc.lock();
const doc1 = await PDFNet.PDFDoc.createFromURL('https://pdftron.s3.amazonaws.com/custom/test/diego/blank.pdf');
const doc2 = await PDFNet.PDFDoc.createFromURL('https://pdftron.s3.amazonaws.com/downloads/pl/demo-annotated.pdf');
await newDoc.appendTextDiffDoc(doc1, doc2);
await newDoc.unlock();
loadDocument(newDoc);
})
})
</script>
</body>
</html>
https://stackoverflow.com/questions/72369205
复制相似问题