将原始数据传递给pdfJS而不是url?

 鱼儿7秒的记忆_710 发布于 2023-01-20 09:35

我可以将这样的数据传递给PDFJS.getDocument而不是URL.我的数据:

PDF-1.4% 9 0 obj <> endobj xref 9 36 0000000016 00000 n 0000001259 00000 n 0000001336 00000 n ...

witttness.. 14

PDFJS.getDocument方法的定义非常清楚,您可以自己阅读:http://mozilla.github.io/pdf.js/api/draft/PDFJS.html#getDocument

您可以使用URL打开PDF:

PDFJS.getDocument('/url/to/file.pdf').then(function(pdf){ 

    var pageNumber = 1;

    pdf.getPage(pageNumber).then(function (page) {
        var scale = 1;
        var viewport = page.getViewport(scale);
        var canvas = document.getElementById('the-canvas');
        var context = canvas.getContext('2d');
        canvas.height = viewport.height;
        canvas.width = viewport.width;
        page.render({canvasContext: context, viewport: viewport});
    });
});

在这种情况下,PDFJS会为您调用URL,但如果您已经拥有PDF文件,则只需将数据提供给PDFJS,如下所示:

var docInitParams = { data: myPdfContent };
PDFJS.getDocument(docInitParams).then(function(pdf){
    //render a page here
});

问题是您的原始PDF数据是什么格式?

如果您刚刚使用Ajax调用从Web服务器检索文件,则可能数据位于ArrayBuffer.如果是这样,您需要通过将其放入a Uint8Array,使其可访问PDFJS ,如下所示:

//However you get the data, let's say it ends up here in this variable
var arrayBufferOfPdfData = blah..blah..blah;

var myData = new Uint8Array(arrayBufferOfPdfData); //put it in a Uint8Array

var docInitParams = {data: myData};
PDFJS.getDocument(docInitParams).then(function(pdf){
    //render a page here
});

最后,您需要知道数据的格式,以便您可以将其转换为可接受的PDFJS格式.如果您的数据被编码为Base64字符串,我没有描述该怎么做,但还有另一个SO问题可以回答这个问题.

我的答案比你的单行问题更具描述性.所以,如果我没有充分解决你的问题,那么你应该提供更多细节.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有