2017-03-26 70 views
0

我目前在一个小项目中工作。我正在尝试在我的android手机中使用ionic2+angular2(typescript)生成pdf。我正在使用pdf制作。Pdf generation in ionic2

这里是我的代码:

getPdf() { 


var docDefinition = { content: 'This is an sample PDF printed with pdfMake' }; 

    pdfMake.createPdf(docDefinition).getBuffer((buffer) => { 
    var utf8 = new Uint8Array(buffer); // Convert to UTF-8... 
    let binaryArray = utf8.buffer; // Convert to Binary... 

    let fileName = "file.pdf"; 
    let saveDir = cordova.file.externalApplicationStorageDirectory; 

     File.createFile(saveDir, fileName, true).then((fileEntry) => { 
     fileEntry.createWriter((fileWriter) => { 
      fileWriter.onwriteend =() => { 
       let toast = this.toastCtrl.create({ 
       message: 'PDF gerado com sucesso! Abrindo arquivo...', 
       duration: 2000, 
       position: 'middle' 
       }); 
       toast.onDidDismiss(() => { 
       cordova.plugins.fileOpener2.open(
        saveDir+fileName, 
        'application/pdf'); 
       }); 
       //this.navCtrl.present(toast); 
       toast.present(); 
      }; 
      fileWriter.onerror = (e) => { 
       console.log('file writer - error event fired: ' + e.toString()); 
      }; 
      fileWriter.write(binaryArray); 
     }); 
     }); 
    }); 
    } 

它显示在createWriter错误物业createWriter不上FileEntry|FileError类型存在。

+0

你的代码工作正常 –

回答

0

可能是import语句的问题

import * as pdfmake from 'pdfmake/build/pdfmake'; 
import 'pdfmake/build/vfs_fonts'; 

添加到您的index.html文件

<body> 

    <!-- Ionic's root component and where the app will load --> 
    <ion-app></ion-app> 

    <!-- The polyfills js is generated during the build process --> 
    <script src="build/polyfills.js"></script> 

    <!-- The bundle js is generated during the build process --> 
    <script src="build/main.js"></script> 
    <script src='pdfmake/build/pdfmake.min.js'></script> 
    <script src='pdfmake/build/vfs_fonts.js'></script> 


</body>