2017-02-20 8 views
0

ブートストラップアコーディオン内に表示されるPDFSを読み込もうとしています。問題は、ブラウザによってさまざまな方法で読み込まれることです。私は異なる結果を持つiframeとオブジェクトhtmlタグを試していましたが、パネル内にPDFを埋め込むと、アコーディオンの機能が完全に破壊されるSafariには大きな流れがあります。ブートストラップアコーディオン内にPDFをロード

私の質問は次のとおりです。クロム、サファリ、IE11、Firefoxに埋め込みPDFの作業をするためにクロスブラウジングに関する標準がありますか?

私はモバイルで動作するためにこれが必要なので、状況はさらに悪いです。いくつかのアドバイスは本当に感謝されます。

+0

PDF.jsをご覧ください。組み込みのPDFビューアやブラウザプラグインを使用せずにPDFをレンダリングします。これは、私が一貫してレンダリングするPDFを得るために見つけた唯一の方法です...もしそうでなければ...主要なブラウザで。あなたの特定のPDFファイルで実際には動作しない可能性があるので、これを答えとして追加しませんでした。 – joelgeraci

+0

私はそれを試してみましょう(これを実装するにはちょっと複雑です)が、私の特定の状況ではPDF.jsが動作しないと思う理由は何ですか?ありがとう! @joelgeraci – Lowtrux

+0

PDF.jsは完全なPDF仕様を実装していません。ほとんどのものでうまく動作しますが、特定の透明モードやその他の高度な色を使用すると、Adobe Readerと同じ結果が得られない場合があります。そして、PDF.jsはとてもシンプルです。このようなURLはトリックを行います.... http://mozilla.github.com/pdf.js/web/viewer.html?file=compressed.tracemonkey-pldi-09.pdf – joelgeraci

答えて

0

クラス "panel-body"を使用してキャンバス要素を作成し、それにあなたが選択したIDを与えます。次に、ドキュメント準備完了イベントに次のコードを追加します。

PDFJS.getDocument('YOURPDF.pdf').then(function(pdf) { 
    pdf.getPage(1).then(function(page) { 
     var scale = 1; 
     var viewport = page.getViewport(scale); 
     var canvas = document.getElementById('pdfOne'); // The id of your canvas 
     var context = canvas.getContext('2d'); 
     canvas.height = viewport.height; 
     canvas.width = viewport.width; 
     var renderContext = { 
      canvasContext: context, 
      viewport: viewport 
     }; 
     page.render(renderContext); 
    }); 
}); 

最初のページがレンダリングされます。ユーザーがドキュメントをナビゲートできるようにボタンを作成する必要がありますが、私が提供したサンプルとサンプルに基づいて作業を進めるには、それは十分に簡単でなければなりません。

+0

ありがとう@joelgeraci – Lowtrux

関連する問題