Javascript Ionic从系统中读取文件并将其放在画布中
我试图读取存储在文件系统(android)中的文件,然后使用pdfjs库将内容放入画布中,以便在视图中呈现它。我的系统pdf查看器也一样,它工作正常,但我需要在它上面做一些绘制和操作,这样它就不能在查看器中显示,它必须在我的应用程序中 我的pdf的渲染效果很好,因为我已经用实时重新加载模式对它进行了测试 下面是阅读代码Javascript Ionic从系统中读取文件并将其放在画布中,javascript,cordova,ionic-framework,Javascript,Cordova,Ionic Framework,我试图读取存储在文件系统(android)中的文件,然后使用pdfjs库将内容放入画布中,以便在视图中呈现它。我的系统pdf查看器也一样,它工作正常,但我需要在它上面做一些绘制和操作,这样它就不能在查看器中显示,它必须在我的应用程序中 我的pdf的渲染效果很好,因为我已经用实时重新加载模式对它进行了测试 下面是阅读代码 readFile( pathToFile ){ this.file.resolveLocalFilesystemUrl( pathToFile).then((fileEn
readFile( pathToFile ){
this.file.resolveLocalFilesystemUrl( pathToFile).then((fileEntry: any) => {
fileEntry.file( (file) => {
var reader = new FileReader();
reader.onloadend = (event) => {
const x = event.target as any;
// let sliced = x._result.slice(x._result.indexOf(',') + 1, x._result.length);
console.log('item', x)
console.log('item', x.result)
console.log('buffer',new Uint8Array(x.result))
// console.log('64', new Uint8Array(x._result));
// const bytes = this.base64ToUint8Array(sliced)
this.renderPDF(x.result, this.container.nativeElement, 1)
};
reader.readAsArrayBuffer(file);
});
});
}
以下是日志:
如您所见,pdf1列出了最后一个日志,因此getDocument的承诺没有得到解决:
renderPDF(url, canvasContainer, scale) {
console.log('pdf1')
this.pdfCreator.disableWorker = true;
this.pdfCreator
.getDocument(url)
.then((doc) => {
this.doc = doc;
console.log('pdf2')
this.renderPages(canvasContainer, scale);
})
.catch(err => console.log(err))
}
我花了两天的时间都没有访问…我觉得url出了问题 你能试试这个吗
readFile( pathToFile ){
this.file.resolveLocalFilesystemUrl( pathToFile).then((fileEntry: any) => {
fileEntry.file( (file) => {
var reader = new FileReader();
reader.onloadend = (event) => {
const x = event.target as any;
// let sliced = x._result.slice(x._result.indexOf(',') + 1, x._result.length);
console.log('item', x)
console.log('item', x.result)
console.log('buffer',new Uint8Array(x.result))
// console.log('64', new Uint8Array(x._result));
// const bytes = this.base64ToUint8Array(sliced)
var blob = new Blob([new Uint8Array(x.result)], {type: 'application/pdf'});
var url = URL.createObjectURL(blob);
this.renderPDF(url, this.container.nativeElement, 1)
};
reader.readAsArrayBuffer(file);
});
});
}
您使用画布而不是本地pdf文件阅读器有什么原因吗?是的,我必须在画布上放置write对象,并动态地操作它们。这个pdf文件只是一个背景,我想说,一张类似的地图