Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将原始数据传递到pdfJS而不是url?_Javascript_Pdf - Fatal编程技术网

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

Javascript 将原始数据传递到pdfJS而不是url?,javascript,pdf,Javascript,Pdf,我可以将这样的数据传递到PDFJS.getDocument而不是URL吗。我的数据: PDF-1.4 %���� 9.0 obj endobj 外部参照9 36 00000000 16 00000 n 000000 1259 00000 n 000000 1336 00000 n PDFJS.getDocument方法定义得非常清楚,您可以自己阅读: 您可以使用URL打开PDF: PDFJS.getDocument('/url/to/file.pdf').then(function(pdf){

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

PDF-1.4 %���� 9.0 obj endobj 外部参照9 36 00000000 16 00000 n 000000 1259 00000 n 000000 1336 00000 n


PDFJS.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
中。如果是这样,您需要将其放入
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
});
最后,您需要知道数据的格式,以便将其转换为PDFJ可以使用的可接受格式。我没有描述如果您的数据被编码为Base64字符串,该怎么办,但确实有

我的回答比你的一句话更具描述性。所以,如果我没有很好地回答你的问题,那么你应该提供更多的细节