如果我正在使用Intel XDK和Cordova进行Android开发,我想知道一个正确且经过验证的方法打开(不保存)生成的pdf的blob数组,其中包含一些默认应用程序(例如Adobe Reader)。
尝试不成功(使用jspdf生成):
function createPDF(){
console.log("generating pdf...");
var doc = new jsPDF();
doc.text(20, 20, 'HELLO!');
doc.setFont("courier");
doc.setFontType("normal");
doc.text(20, 30, 'This is a PDF document generated using JSPDF.');
doc.text(20, 50, 'YES, Inside of cordova!');
pdfOutput = doc.output();
console.log(pdfOutput);
var buffer = new ArrayBuffer(pdfOutput.length);
var array = new Uint8Array(buffer);
for (var i = 0; i < pdfOutput.length; i++) {
array[i] = pdfOutput.charCodeAt(i);
}
var pdfAsDataUri = "data:application/pdf;base64," + array;
window.open(pdfAsDataUri);
}
此外,我尝试了很多示例,但没有任何效果,以防万一,控制台中没有显示任何错误。
谢谢大家。
答案 0 :(得分:0)
您可以从Blob
创建pdfOutput
,然后使用Blob URL
Blob
创建URL.createObjectURL()
var blob = new Blob([pdfOutput], {type:"application/pdf"});
var url = URL.createObjectURL(blob);
var pdfAsDataUri = url;
window.open(pdfAsDataUri);
答案 1 :(得分:0)
最后,我可以将问题分解为:
*创建文档的一个按钮
*创建pdf内容的一个按钮
*一个按钮,用于将pdf内容写入创建的文档
*一个按钮打开文件
*仅限Cordova文件插件
在本文中关注并调整解决方案: https://github.com/pwlin/cordova-plugin-file-opener2/issues/60
稍后我会做一个视频教程,因为这个问题似乎很常见,很难解决。