我有以下base64编码的字符串,其中包含pdf文件。 我想将base64字符串转换为Uint8Array,因为IE9正向支持Uint8Array,而不是我想用pdf.js打开pdf
我正在使用以下代码,
.intro{
background: url('../img/bbl.png') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
min-height: 100%;
min-width: 1024px;
background-attachment: fixed;
background-size: 100% 100%;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
}
但是pdf没有在浏览器中生成或打开,任何建议或帮助都将受到赞赏。
答案 0 :(得分:0)
我在我的项目中使用它并且工作正常。
HTML
<div id="myCanvasContainer"></div>
JS
function renderPDF( pdfBase64 ) {
var pdfUint8Array = base64ToUint8Array( pdfBase64 );
var canvasContainer = document.getElementById('myCanvasContainer');
var options = options || { scale: 1.5 };
function renderPage(page) {
var viewport = page.getViewport(options.scale);
var canvas = document.createElement('canvas');
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);
}
function base64ToUint8Array(base64) {
var raw = atob(base64);
var uint8Array = new Uint8Array(raw.length);
for (var i = 0; i < raw.length; i++) {
uint8Array[i] = raw.charCodeAt(i);
}
return uint8Array;
}
PDFJS.disableWorker = true;
PDFJS.getDocument(pdfUint8Array).then(renderPages);
}
希望它有所帮助。