[英]Attach Pdf to email composer in ionic
我正在尝试将Blob pdf文件附加到电子邮件撰写器。 但这对我不起作用。
function createPdf(reportData){
return $q(function(resolve, reject) {
var dd = createDocumentDefinition(reportData);
var pdf = pdfMake.createPdf(dd)
.getBuffer(function(buffer){
var utf8 = new Uint8Array(buffer); // Convert to UTF-8...
binaryArray = utf8.buffer; // Convert to Binary...
$cordovaFile.writeFile(cordova.file.dataDirectory, "file.pdf", binaryArray, true)
.then(function (success) {
alert('Pdf created');
console.log("pdf created");
}, function (error) {
console.log("error");
});
});
});
}
此代码有效,并且警告pdf创建。
pdfGenerator.createPdf(reportbody)
.then(function(pdf){
$ionicLoading.hide();
var blob = new Blob([pdf], {type: 'application/pdf'});
$scope.pdfUrl = URL.createObjectURL(blob);
var email = {
to: 'max@mustermann.de',
cc: 'erika@mustermann.de',
bcc: ['john@doe.com', 'jane@doe.com'],
attachments: [$scope.pdfUrl],
subject: 'Cordova Icons',
body: 'How are you? Nice greetings from Leipzig',
isHtml: true
};
$cordovaEmailComposer.open(email).then(null, function () {
// user cancelled email
});
},function(error){
console.log(error);
});
当我控制台cordova.file.dataDirectory时,它给了我cdvfile://路径而不是本机路径。 因此,如何将文件附加到邮件。
是的,我找到了解决我问题的方法。 我在这里提到了代码,希望对您有所帮助。
function createPdf(reportData){
return $q(function(resolve, reject) {
var dd = createDocumentDefinition(reportData);
var pdf = pdfMake.createPdf(dd)
.getBuffer(function(buffer){
var utf8 = new Uint8Array(buffer); // Convert to UTF-8...
binaryArray = utf8.buffer; // Convert to Binary...
resolve(binaryArray);
});
});
}
在控制器中
pdfGenerator.createPdf(reportbody)
.then(function(pdf){
$ionicLoading.hide();
$cordovaFile.writeFile(cordova.file.externalApplicationStorageDirectory,'mydoc.pdf',pdf,true).then(function(success){
console.log("File created");
})
var email = {
to: 'max@mustermann.de',
cc: 'erika@mustermann.de',
bcc: ['john@doe.com', 'jane@doe.com'],
attachments: [externalApplicationStorageDirectory+'mydoc.pdf'],
subject: 'Cordova Icons',
body: 'How are you? Nice greetings from Leipzig',
isHtml: true
};
$cordovaEmailComposer.open(email).then(null, function () {
// user cancelled email
});
},function(error){
console.log(error);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.