如何在PDFMake中使用Cordova相机图片?

时间:2019-06-15 09:00:38

标签: angular cordova ionic-framework ionic2

我正在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。

我想将捕获的图片存储在应用程序中,然后使用本地文件。

0 个答案:

没有答案