我正在Angular中构建Ionic Cordova App。我必须使用表单值和图片创建PDF。我正在使用Cordova相机来获取效果很好的图像。
获得图像后,如何在不转换为Base64的情况下在PDFmake中使用它? Base64广泛使用,并且在较旧的设备上无法使用。
相机获取图片
takePicture() {
const options: CameraOptions = {
quality: 95,
destinationType: this.camera.DestinationType.FILE_URI,
sourceType: this.camera.PictureSourceType.CAMERA,
encodingType: this.camera.EncodingType.PNG,
targetWidth: 400,
targetHeight: 400,
saveToPhotoAlbum: true,
correctOrientation: true
};
this.camera.getPicture(options).then((imageData) => {
const sourceDirectory = imageData.substring(0, imageData.lastIndexOf('/') + 1);
const sourceFileName = imageData.substring(imageData.lastIndexOf('/') + 1, imageData.length);
this.selectedImage = this.webView.convertFileSrc(imageData);
this.photos.push({
image: this.selectedImage,
rawImage: sourceFileName,
});
this.storage.set('photos', this.photos);
console.log('Copying from : ' + sourceDirectory + sourceFileName);
console.log('Copying to : ' + this.file.dataDirectory + sourceFileName);
this.file.copyFile(sourceDirectory, sourceFileName, cordova.file.dataDirectory, sourceFileName).then(function(success) {
const fileName = cordova.file.dataDirectory + sourceFileName;
console.log(fileName);
}, (error) => {
console.dir(error);
});
}, (err) => {
// Handle error
console.log('Camera issue:' + err);
});
}
使用PDFmake,我可以使用表单值制作PDF,但是只有在使用base64的情况下,图片才会显示。我不想使用base64。
我想将捕获的图片存储在应用程序中,然后使用本地文件。