0

jsreport で作成された PDF レポートを取得して、新しいウィンドウ/タブに表示しようとしています。

ajax 応答には、PDF コンテンツのようなデータが含まれています。

%PDF-1.4
1 0 obj
<<
/Title ...

でデータを表示しようとすると

window.open('data:application/pdf;base64,' + data);

新しい空のタブが開きます - 何も表示されません。

私がしようとすると:

window.open('data:application/pdf,' + data);

PDF プラグインを含む新しいタブが開き、コンテンツが正しくないことが示されます。URL アドレスは次のように表示されます。

data:application/pdf,%PDF-1.410obj<</Title(%EF%BF%BD%EF%BF%BD)/Creator(%EF%

私は何を間違っていますか?

4

1 に答える 1

0

私の経験から、ajax と pdf でさまざまなクロスブラウザーの問題が発生します。jsreport サーバーに投稿して pdf を取得すると仮定すると、単純な http フォーム投稿を新しいタブに使用する方が簡単で安定しています。

<form method='POST' target='_blank' action='http://<jsreport>/api/report' id='jsrForm'>
        <input hidden='true' type='text'name='template[shortid]' value="xykdJcxR5"/>       
        <input hidden='true' type='text'name='data[foo]' value="1"/>
</form>

このフォームを送信すると、レポートを含む新しいタブが開きます

document.getElementById("jsrForm").submit();

jsreport ブラウザーのサポートとレンダリングについては、このドキュメントを確認することもできます。

于 2015-07-10T07:26:04.207 に答える