pdfНе создавайте pdf с помощью плагина File IONIC - PullRequest
0 голосов
/ 28 апреля 2019

PDF сделать не создавая PDF с помощью File Plugin на Android-устройстве.Но в состоянии создавать и загружать в Интернете.

глобальные пакеты:

Cordova CLI : 7.1.0 

локальные пакеты:

@ionic/app-scripts : 2.1.4
Cordova Platforms  : android 6.3.0
Ionic Framework    : ionic-angular 3.6.0

packages.json

"@ionic-native/file": "^4.20.0",
"@ionic-native/file-opener": "^5.0.0"

Ниже приведен код

print() {

this.createPdf();

if (this.plt.is('cordova')) {
  this.pdfObj.getBuffer(function (buffer) {

    let utf8 = new Uint8Array(buffer);
    let binaryArray = utf8.buffer;

    var filename = this.formname + new Date().toDateString();



    this.file.writeFile(this.file.documentsDirectory, filename+'.pdf', binaryArray, { replace: true }).then(fileEntry => {

      const toast = this.toastCtrl.create({
        message: 'File saved to your device',
        duration: 3000,
        position: 'top'
      });
      toast.present();



      this.fileOpener.open(this.file.documentsDirectory + filename+'.pdf', 'application/pdf');
    })
  });

} else {

  this.pdfObj.download();

}


}




 createPdf() {


for (let item of this.columns) {

  this.columnRelDataForPdf.push(this.formData[item.columnDef])

}

console.log("Inside create pdf");

console.log(this.columnDataForPdf);
console.log(this.columnRelDataForPdf);


var bodyData = [];
var dataRowHeader = [];
dataRowHeader.push(this.formName)
dataRowHeader.push('')
bodyData.push(dataRowHeader);

for (let item of this.columns) {

  var dataRow = [];

  dataRow.push(item.header);
  dataRow.push(this.formdata[item.columnDef] == undefined ? "" : this.formdata[item.columnDef]);
  bodyData.push(dataRow)

}






var docDefinition = {
  content: [
    {
      layout: 'lightHorizontalLines', 
      table: {
        headerRows: 1,
        widths: ['*', '*'],

        body: bodyData
      }
    }
  ], styles: {
    header: {
      bold: true,
      fontSize: 20,
      alignment: 'right'
    }
  }
};


    this.pdfObj = pdfMake.createPdf(docDefinition);
  }

Я также попробовал externalDataDirectory и другие опции, но безуспешно с созданием PDF-файла.Пожалуйста, дайте мне знать, где я делаю неправильно.

Спасибо.

...