我有一个页面,其中包含使用jsPDF的下载按钮。在台式机上,它会按原样下载页面。但是,pdf.save()
无法在我的平板电脑或手机上使用。
我尝试为移动设备添加一个特殊情况,以便在新窗口中打开PDF,因为移动设备不会下载与桌面相同的内容,因为一旦PDF在新窗口中打开,用户可以选择手动保存。
var pdf = new jsPDF('p', 'pt', 'letter');
var specialElementHandlers = {
'#editor': function (element, renderer) {
return true;
}
};
html2canvas($("#pdf-area"), {
onrendered: function (canvas) {
$("#pdf-canvas").append(canvas);
$("#pdf-canvas canvas").css("padding", "20px");
}
});
var options = {
pagesplit: true
};
function download(doctitle) {
pdf.addHTML($("#pdf-area")[0], options, function () {
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
pdf.output('dataurlnewwindow');
} else {
pdf.save(doctitle);
}
});
}
但是我的平板电脑/手机上的下载功能仍无效。我用它来测试它以确保pdf.output()函数正常工作:
pdf.addHTML($("#pdf-area")[0], options, function () {
pdf.output('dataurlnewwindow');
});
它仍可在桌面上运行,但在移动设备上无效。
答案 0 :(得分:1)
我有类似的问题。
jsPDF不会使用" pdf.save()"
在手机/平板电脑/ iPad上下载文件如果您使用cordova / phonegap,请通过File插件执行此操作,这将在下载文件夹(Android)中保存pdf文件 - 对于ios,您可以通过路径(保存在临时目录中的某个位置)访问pdf文件,并且可以发送或分享。
希望这会对你有所帮助。
答案 1 :(得分:1)
以下是您使用Cordova平台进行开发的示例:
https://github.com/saharcasm/Cordova-jsPDF-Email
未在设备中下载pdf的解决方法是使用cordova-plugin-file。
在doc上使用输出方法,它将为您提供需要编写的原始pdf&保存在文件中。
例如,
var doc = new JsPDF();
//... some work with the object
var pdfOutput = doc.output("blob"); //returns the raw object of the pdf file
然后使用文件插件将pdfOutput写入实际文件。
答案 2 :(得分:-1)
以下是使用jspdf
在移动设备上下载的解决方案if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))
{
var blob = pdf.output();
window.open(URL.createObjectURL(blob));
}
else
{
pdf.save('filename.pdf');
}