Firefox addon 在firefox扩展中使用pdf.js打开本地pdf文件

Firefox addon 在firefox扩展中使用pdf.js打开本地pdf文件,firefox-addon,pdf.js,Firefox Addon,Pdf.js,我正在使用pdf.js从firefox插件中的pdf文件中提取注释。除了打开本地pdf文件外,一切都很顺利PDFJS.getDocument('http://...,然后(函数(pdf){…可以工作,但是PDFJS.getDocument('file:///...)。然后(函数(pdf){不会。 我收到以下错误:检索PDF时出现意外的服务器响应(0)… 这是一个跨域问题吗?我认为这不应该是一个问题,因为我的代码是从扩展运行的。我如何解决这个问题?将文件读入Uint8Array并将其作为sourc

我正在使用
pdf.js
从firefox插件中的pdf文件中提取注释。除了打开本地pdf文件外,一切都很顺利<代码>PDFJS.getDocument('http://...,然后(函数(pdf){…可以工作,但是
PDFJS.getDocument('file:///...)。然后(函数(pdf){
不会。 我收到以下错误:
检索PDF时出现意外的服务器响应(0)…


这是一个跨域问题吗?我认为这不应该是一个问题,因为我的代码是从扩展运行的。我如何解决这个问题?

将文件读入Uint8Array并将其作为
source
传递到
getDocument

将文件读入Uint8Array并将其作为
source
传递到
getDocument
.

这里是一个简化的JS,它仅作为我的示例- 首先将文件作为数组缓冲区(e.target.result)获取,然后将其转换为Uint8数组,并将其作为数据(docInitParams)而不是URL传递到PDF.js

var reader=newfilereader();
reader.readAsArrayBuffer(input.files[0]);
reader.onload=函数(e){
var myData=newuint8array(e.target.result)
var docInitParams={data:myData};
getDocument(docInitParams).then(函数(pdf){….})

}
这里是一个简化的JS,仅作为示例- 首先将文件作为数组缓冲区(e.target.result)获取,然后将其转换为Uint8数组,并将其作为数据(docInitParams)而不是URL传递到PDF.js

var reader=newfilereader();
reader.readAsArrayBuffer(input.files[0]);
reader.onload=函数(e){
var myData=newuint8array(e.target.result)
var docInitParams={data:myData};
getDocument(docInitParams).then(函数(pdf){….})

}
谢谢!有什么提示吗?我可以将Uint8Array传递给
getDocument
,我可以使用
新建Uint8Array(…)
(请参阅)。但是我不知道如何将本地文件读入Uint8Array…使用(如果您觉得有用,请接受答案)我一直在想如何将文件永远读入
Uint8Array
,谢谢你的评论paa!谢谢!有什么提示吗?我可以将Uint8Array传递给
getDocument
,我可以使用
新建Uint8Array(…)
(请参阅)。但我不确定如何将本地文件读入Uint8Array…使用(如果您觉得有用,请接受答案)我一直在想如何将文件永久读入
Uint8Array
,谢谢您的评论!