【发布时间】:2018-09-21 07:43:06
【问题描述】:
我正在使用 Angular 5 中的 PDF.js 开发 PDFViewer。我在同时显示所有页面的 Pdf 时遇到了问题。
问题描述: 第一个页面正常显示,但其余页面并排显示。
我试图找出我做错的地方。有什么建议吗? 提前致谢!!
这是我的代码:
PDFJS.getDocument(src1).then((_pdfDoc) => {
this.pdf = _pdfDoc;
this.totalPages = this.pdf.pdfInfo.numPages;
let viewer = document.getElementById('viewer');
for(let page = 1; page <= this.totalPages; page++) {
let canvas = document.createElement("canvas");
canvas.className = 'pdf-page-canvas';
viewer.appendChild(canvas);
this.renderPage(page, canvas);
}
});
renderPage(pageNumber, canvas) {
this.pdf.getPage(pageNumber).then(function(page) {
let viewport = page.getViewport(1);
canvas.height = viewport.height;
canvas.width = viewport.width;
page.render({canvasContext: canvas.getContext('2d'), viewport: viewport});
});
}
<div id ="viewer" class="pdfViewer"> </div>
更新问题:
- 问题(即页面并排出现)已由 在页面中添加额外的 div 标签。看看我的代码
PDFJS.getDocument(src1).then((_pdfDoc) => {
this.pdf = _pdfDoc;
this.totalPages = this.pdf.pdfInfo.numPages;
let viewer = document.getElementById('viewer');
for(let page = 1; page <= this.totalPages; page++)
{
let childViewer=document.createElement("div");
childViewer.className='childviewer';
childViewer.align="center";
let canvas = document.createElement("canvas");
canvas.className = 'pdf-page-canvas';
childViewer.appendChild(canvas);
viewer.appendChild(childViewer);
this.renderPage(page, canvas);
}
});
renderPage(pageNumber, canvas) {
this.pdf.getPage(pageNumber).then(function(page) {
let viewport = page.getViewport(1);
canvas.height = viewport.height;
canvas.width = viewport.width;
page.render({canvasContext: canvas.getContext('2d'), viewport: viewport});
});
}
<div id ="viewer" align="center" class="pdfViewer2">
</div>
【问题讨论】:
-
并排的页面是一个
<canvas>还是两个? -
嗨@BenWest,对不起,我没有正确理解你的问题。两个
标签: javascript html angular typescript pdfjs