目前我正在开发一个使用url调用外部网站的应用程序。现在网站正在浏览不同的页面。
我创建了一个按钮,一旦按钮录制应用程序捕获当前网址的内容,例如www.example.com/aboutme.html,并希望生成pdf或png,复制所有数据,包括数据,样式图像等所有内容。
注意:我还使用了ScreenShot cordova插件,但它只捕获应用程序的当前可见屏幕而不是包含滚动数据,这不是必需的。
谷歌之后我现在正在使用Html2canvas的功能 使用html2canvas.js,canvas2image.js,jspdf.debug.js
html2canvas( [document.body],{
allowTait: true,
logging:true,
useCORS: true,
onrendered: function(canvas) {
document.body.appendChild(canvas);
var imgData = canvas.toDataURL("image/jpeg", 1.0);
var pdf = new jsPDF();
pdf.addImage(imgData, 'JPEG', 0, 0);
pdf.save("mypdf.pdf");
}
})
此代码在网络浏览器中正常生成pdf,但它无法在当前使用Android的设备上运行。
2)有关设备特定代码,请参阅以下代码
var doc = new jsPDF('p', 'in', 'letter');
html2canvas([ document.body ], {
allowTait : true,
logging : true,
useCORS : true,
onrendered : function(canvas) {
var imgData = canvas.toDataURL('image/JPEG', 1.0);
doc.addImage(imgData, 'JPEG', 0, 0);
}
});
var pdfOutput = doc.output();
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("sajjad.pdf", {
create : true
}, function(entry) {
alert(entry);
var fileEntry = entry;
console.log("fileSystem.name" + fileSystem.name + " "
+ "fileSystem.root.name " + fileSystem.root.name
+ " ");
entry.createWriter(function(writer) {
writer.onwrite = function(evt) {
console.log("write success");
};
console.log("writing to file");
writer.write(pdfOutput);
alert("Generating done.");
}, function(error) {
console.log(error);
});
}, function(error) {
console.log(error);
});
}, function(event) {
console.log(evt.target.error.code);
});
}
有什么建议吗?