Javascript PDFView.page.getViewport()未定义?
因此,我使用的是normal viewer.html和单独的.js中包含的以下函数:Javascript PDFView.page.getViewport()未定义?,javascript,pdf,pdf.js,Javascript,Pdf,Pdf.js,因此,我使用的是normal viewer.html和单独的.js中包含的以下函数: function selectedPosition() { var visible = PDFView.getVisiblePages(); var firstPage = visible.first; var pageNumber = firstPage.id; var currentPage = PDFView.pages[pageNumber - 1]; var
function selectedPosition()
{
var visible = PDFView.getVisiblePages();
var firstPage = visible.first;
var pageNumber = firstPage.id;
var currentPage = PDFView.pages[pageNumber - 1];
var selecion = window.getSelection();
var range = selecion.getRangeAt(0);
var rect = range.getBoundingClientRect();
var div = $('#viewer');
var viewport = currentPage.getViewport(div.width / currentPage.getViewport(1.0).width); // Uncaught TypeError: undefined is not a function
var point1 = viewport.convertToPdfPoint(rect.left - div.offset().left, rect.top - div.offset().top);
var point2 = viewport.convertToPdfPoint(rect.right - div.offset().left, rect.bottom - div.offset().top);
console.log(point1);
console.log(point2);
}
代码应该做的是计算相对于pdf的矩形点,以便它们独立于滚动和缩放。
代码主要是从viewer.js复制的,那么为什么不定义getViewport呢
尝试
console.log(currentPage.getViewport(1.0));
产生相同的错误。我缺少什么?我认为您可以使用调用PDFView.pages[pageNumber-1]返回的PageView对象的“viewport”属性。例如:
function selectedPosition()
{
var visible = PDFView.getVisiblePages();
var firstPage = visible.first;
var pageNumber = firstPage.id;
var currentPage = PDFView.pages[pageNumber - 1];
...
//var viewport = currentPage.getViewport(div.width / currentPage.getViewport(1.0).width);
var viewport = currentPage.viewport; // Should return a reference to the viewport for the page
...
}
未定义查看器的API:不推荐使用PDFView,请改用PDFViewerApplication。另外,PDFView.pages包含PageView对象而不是页面对象,因此getViewport在那里不可用。我应该使用什么来代替
PDFView.getVisiblePages()代码>和getPage
然后呢?当textlayer(我需要)尚未完成时,pagerendered事件触发得太早。PDFViewerApplication.pdfViewer.\u getVisiblePages但是它可能是一个私有方法,将来可能会被删除。在新版本中,文本层将生成“textlayerrendered”事件。