jsPDF和cordova无法查看pdf文件
我正在尝试为我的应用程序生成PDF发票,我可以访问“console.log”(“write success”);”但我就是找不到这个文件。请帮忙!!!如何将其保存到手机中的文件夹jsPDF和cordova无法查看pdf文件,cordova,cordova-plugins,jspdf,Cordova,Cordova Plugins,Jspdf,我正在尝试为我的应用程序生成PDF发票,我可以访问“console.log”(“write success”);”但我就是找不到这个文件。请帮忙!!!如何将其保存到手机中的文件夹 console.log("generating pdf..."); var doc = new jsPDF(); doc.text(20, 20, 'HELLO!'); doc.setFont("courier"); doc.setFontType("normal"); doc.text(20, 30, 'This
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 PhoneGap!');
var pdfOutput = doc.output();
console.log( pdfOutput );
//NEXT SAVE IT TO THE DEVICE'S LOCAL FILE SYSTEM
console.log("file system...");
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
console.log(fileSystem.name);
console.log(fileSystem.root.name);
console.log(fileSystem.root.fullPath);
fileSystem.root.getFile("test.pdf", {create: true}, function(entry) {
var fileEntry = entry;
console.log(entry);
entry.createWriter(function(writer) {
writer.onwrite = function(evt) {
console.log("write success");
};
console.log("writing to file");
writer.write( pdfOutput );
}, function(error) {
console.log(error);
});
}, function(error){
console.log(error);
});
},
function(event){
console.log( evt.target.error.code );
您正在系统的根路径中保存文件 如果要选择文件夹,请选中 因此,如果您想选择一个公用文件夹,以便可以在应用程序之外检查您的文件,请选中此链接 然后选择private=no的一个 例如:
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dir) {
dir.getFile("test.pdf", {create: true, exclusive: false}, function (fileEntry) {
fileEntry.createWriter(function (writer) {
writer.onwrite = function(evt) {
console.log("write success");
};
console.log("writing to file");
writer.write( pdfOutput );
}
},function () {
console.log("ERROR SAVEFILE");
});
});
});
您的文件将被放置在sdcard/files目录中
对于打开它,我希望你没有任何pdf查看器插件,因此InApp浏览器是不必使用任何插件的解决方案,并在你的应用程序中打开它
安装
然后打开它:
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dir) {
dir.getFile(filename, {create:false}, function(fileEntry) { //EXISTS
var url = "file:/" + cordova.file.externalDataDirectory + "/test.pdf";
window.open(url, '_blank');
}, function() { //NOT EXISTS
});
});
我还没有测试它,因为应用浏览器似乎不喜欢太多的本地文件。请发布您的结果我觉得下面的一行可能是问题所在,window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem){}) 在我读过的一些帖子中,有人提到requestfilsystem方法和LocalFileSystem.PERSISTENT参数在android中不起作用,除非设备是根设备 我使用--“window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory,successCallback,errorCallback);” 我建议你看看这里,我在Android和iOS设备上发布了相同的文件创建代码
此外,如果你想在你选择的应用程序中打开PDF,你可以使用cordova file opener插件。你可以看看下面的文件开启器示例代码你可以发布console.log(fileSystem.root.fullPath)的结果吗?我相信没有像“cordova.file.file”这样的东西,如果我错了,请纠正我。嘿,谢谢!!成功了。我的pdf已保存在我的应用程序目录中。非常感谢。你能建议我如何在创建pdf后打开它吗??我给了cordova.file.externalDataDirectory。当然file.file只是我想的一个例子好吧,我会在1小时后发布,因为我不在家,你想怎么打开它?您是否有pspdfkit或pdftron等pdf查看器插件?@user2281415已编辑我的答案,以提供有关pdf查看的更多信息。尝试后将尽快返回inappbrowser@Del它不工作..没有抛出错误,但文件未打开无法尝试..我不知道如何为文件指定uri..cdr.nativeURL+“test.pdf”,即使在应用程序内浏览器方法中,im getting file not found错误..@user2281415我在文章中的第一个链接包含关于cdr.nativeURL的详细信息。任何错误跟踪?你们在设备上测试了吗?实际上,我没有收到任何成功或错误消息