gpt4 book ai didi

javascript - PDF.js 无法在 IE 中正确呈现 pdf

转载 作者:可可西里 更新时间:2023-11-01 02:26:51 24 4
gpt4 key购买 nike

我正在使用 PDF.js 框架来呈现 PDF。我正在使用 base64 数据来呈现 PDF。但在 IE 11 中,pdf 看起来很模糊。

请参阅以下 IE 11 屏幕

enter image description here

看下面的代码:

var renderPDF = function(url, canvasContainer,data) {
var scale= 0.9; //"zoom" factor for the PDF

function renderPage(page) {
var canvas = document.createElement('canvas');
var viewport = page.getViewport(scale);

var ctx = canvas.getContext('2d');
var renderContext = {
canvasContext: ctx,
viewport: viewport
};

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

canvasContainer.appendChild(canvas);

page.render(renderContext);
}

function renderPages(pdfDoc) {
for(var num = 1; num <= pdfDoc.numPages; num++)
pdfDoc.getPage(num).then(renderPage);
}

PDFJS.disableWorker = false;

var pdfAsDataUri = "data:application/pdf;base64,"+data; // shortened
var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);
PDFJS.getDocument(pdfAsArray).then(renderPages);

};

var BASE64_MARKER = ';base64,';

var convertDataURIToBinary = function(dataURI) {
var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
var base64 = dataURI.substring(base64Index);
var raw = atob(base64);
var rawLength = raw.length;
var array = new Uint8Array(new ArrayBuffer(rawLength));

for(var i = 0; i < rawLength; i++) {
array[i] = raw.charCodeAt(i);
}
return array;
};

请帮帮我。

最佳答案

如果您的 PDF.js 在 IE11 中不工作,则需要 compatibility.js .您可以将以下行插入到您的代码中紧跟在标记之后(在任何其他 <script> 之前):

<script type="text/javascript" src="../../web/compatibility.js"></script>

您还可以在下面添加文件:

希望对您有所帮助。

关于javascript - PDF.js 无法在 IE 中正确呈现 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542835/

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