gpt4 book ai didi

twitter-bootstrap - PDF.JS 如何使 pdf-js 查看器 Canvas 响应?

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:02 24 4
gpt4 key购买 nike

我必须在我的页面上使用 PDFJS 库显示 PDF。问题是,由于我将比例作为固定数字 Canvas 给出,其中呈现 PDF 没有响应并且不适合 Bootstrap 网格列宽。这是 HTML 代码:

<div class="row">
<div class="col-md-1" style="padding-right: 15px;">
<input type="button" ng-click="openPreviousPage()"/>
</div>
<div class="col-md-8">
<canvas id="the-canvas" style="border: 1px solid black;"></canvas>
</div>
<div class="col-md-1 col-md-offset-2" style="padding-right:15px;">
<input type="button" ng-click="openNextPage()" />
</div>
</div>

和我在 Controller 中的 typescript :

 openPage = (pdf: PDFDocumentProxy, pageNumber: number) => {
pdf.getPage(pageNumber).then(function getPage(page) {
var scale = 1;
var viewport = page.getViewport(scale);

var canvas = <HTMLCanvasElement>document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;


var renderContext = {
canvasContext: context,
viewport: viewport
};

//...rest of actions
});
}

如有任何提示,我们将不胜感激。

最佳答案

您可以在 Canvas 容器 div 上放置一个 id 并根据 div.clientWidthviewport.width 设置比例

在您的 HTML 代码上:

<div class="row">
<div class="col-md-1" style="padding-right: 15px;">
<input type="button" ng-click="openPreviousPage()"/>
</div>
<div class="col-md-8" id="the-container">
<canvas id="the-canvas" style="border: 1px solid black;"></canvas>
</div>
<div class="col-md-1 col-md-offset-2" style="padding-right:15px;">
<input type="button" ng-click="openNextPage()" />
</div>
</div>

然后在 Controller 上:

openPage = (pdf: PDFDocumentProxy, pageNumber: number) => {
pdf.getPage(pageNumber).then(function getPage(page) {
var container = document.getElementById('the-container');
var canvas = <HTMLCanvasElement>document.getElementById('the-canvas');
var context = canvas.getContext('2d');

var viewport = page.getViewport(1);
var scale = container.clientWidth / viewport.width;
viewport = page.getViewport(scale);

canvas.height = viewport.height;
canvas.width = viewport.width;


var renderContext = {
canvasContext: context,
viewport: viewport
};

//...rest of actions
});
}

希望这有助于...

关于twitter-bootstrap - PDF.JS 如何使 pdf-js 查看器 Canvas 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com