我正在用Angular构建Ionic Cordova应用程序。我必须创建一个带有表单值和图片的PDF。我正在使用科尔多瓦相机来获取工作正常的图像。
获得图像后,我应该如何在不转换为 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。
我想将捕获的图片存储在应用程序中,然后使用本地文件。
PDFMake 接受 Base64 和 URI 来显示图像。如果不需要 B64 版本,请将图片的 URI 传递给 Image 对象。