2017-11-03 13 views
1

Ionic 3アプリをビルドして、base64でエンコードされたファイルのプレビューを表示します。Ionic 3アプリでBase64でエンコードされたPDFファイル

私が最初にこのプラグインを使用しよう: https://www.npmjs.com/package/ng2-pdf-viewer

それは冒頭で働いていたが、今日、私のPDFはもう表示されません。もしかしたら依存が古くなっているのかもしれない。 このプラグインは私に満足のいくプレビューを与えてくれません。

は今、私はこれを見つける:https://ionicframework.com/docs/native/base64/

をしかし、問題は、私はこのプラグインではBase64を使用することができないということです。

私は本当にこの問題を解決するために何ができるのか分かりません。誰かが解決策を持っていますか?

答えて

0

Base64文字列をUint8Arrayに変換する必要があります。 〜からDownload File from Bytes in JavaScript。内容が初期化された後

はあなたの呼び出し側コンポーネント

base64ToArrayBuffer(base64) { 
    const binary_string = window.atob(base64); 
    const len = binary_string.length; 
    const bytes = new Uint8Array(len); 
    for (let i = 0; i < len; i++) { 
     bytes[i] = binary_string.charCodeAt(i); 
    } 
    return bytes.buffer; 
} 

にベース64変換機能を追加します。

public ngAfterContentInit(): void { 
    this.viewer.pdfSrc = this.base64ToArrayBuffer(this.model.pdfBytes); 
} 

をthis.model.pdfBytesはbase64でエンコードされた文字列が含まれています。

0

私の解決策が探しているものかどうかは分かりませんが、私はこれを使用しています。

Pdf(){ 
this.rest.getPdfVacation(this.mail).then(data=>{ 
    if(data.json()){ 
    let pdf = window.open(); 
    pdf.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64, " + data.json().RESPUESTA + "'></iframe>"); 
    } 
}) } 

あなたは、私が新しいタブでPDFを開いたが、あなたはそれを避けることができる見ることができるように、私のbase64文字列が(data.jsonである)。RESPUESTAので、その場所で、あなたのbase64データを入れshouwld。

乾杯!

関連する問題