2017-07-15 5 views
1

私のイオンアプリでpdfのエクスポートをしたいです。私.TSファイルで 、私はこの機能を持っている:pdfmakeはionic 2を使用してモバイルでpdfをダウンロードしていません。

exportPDF() { 
     var docDefinition = { 
     content: [ 
       { 
        layout: 'lightHorizontalLines', // optional 
        table: { 
        // headers are automatically repeated if the table spans over multiple pages 
        // you can declare how many rows should be treated as headers 
        headerRows: 1, 
        widths: [ '*', 'auto', 100, '*', 'auto' ], 

        body: [ 
         [ 'Title 1', 'Title 2', 'Title 3', 'Title 4', 'Title 5' ], 
         [ 'Value 1', 'Value 2', 'Value 3', 'Value 4', 'Value 5' ], 
         [ 'Value 1', 'Value 2', 'Value 3', 'Value 4', 'Value 5' ], 
        ] 
        } 
       } 
       ] 
     } 
     pdfMake.createPdf(docDefinition).open(); 
     pdfMake.createPdf(dd).download(); 

      pdfMake.createPdf(docDefinition).getBuffer((buffer) => { 
       var utf8 = new Uint8Array(buffer); // Convert to UTF-8... 
       var binaryArray = utf8.buffer; // Convert to Binary... 
       this.file.writeFile(this.file.dataDirectory, "example.pdf", binaryArray, true).then((success) => { 
         alert(success.toURL()); 
        }, (error) => { 
         alert(error); 
       }); 
      }); 
} 

ここでは、この2行:

pdfMake.createPdf(docDefinition).open(); 
    pdfMake.createPdf(dd).download(); 

は、ブラウザ上ではなく、モバイル上でのみ動作します。

pdfmakeとcordova-file-pluginとcordova-file-transfer-pluginを使用してPDFファイルをダウンロードするにはどうすればよいですか?

私は検索しようとしましたが、明確な解決策はありません。

解決策をご存知の方はお手伝いください。どうもありがとうございました!!!

+0

あなたはこの答えを見たことがありますか? https://stackoverflow.com/questions/36130527/save-this-pdf-in-the-cache-local-storage-on-ionic – misha130

+0

私は試したが、何も起こらなかった – JSmith

答えて

0

次のコードを試してください。コードワーバー環境と非コードワーバー環境の両方で動作します。あなたはより多くの詳細については、以下のリンクから行くことができる

コード

var docDefinition = ''; //your doc definition 

if (!window.cordova) 
    pdfMake.createPdf(docDefinition).open(); 

else { 
    pdfMake.createPdf(docDefinition).getBuffer(function (buffer) { 
     var utf8 = new Uint8Array(buffer); 
     binaryArray = utf8.buffer; 

     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
    }); 
} 

function fail(error) { 
    console.log(error.code); 
}; 

function gotFS(fileSystem) { 
    var fileName = "filename.pdf"; 

    fileSystem.root.getFile(fileName, { 
     create: true, 
     exclusive: false 
    }, gotFileEntry, fail); 
} 
関連する問題