私は Webアプリケーションのページを作成しています。ユーザーはリストから顧客を選択して、それらをメールで送付することができます。これらの文字はPDFs
としてアップロードされ、varbinary
としてデータベースに保存されています。Javascript - APIから返されたBlobコンテンツを印刷
複数選択の場合、単純にbyte []を追加するので、ユーザーはすべての文字を含む1つのドキュメントを印刷して顧客に送信します。
blobをAPIから正常に取得してコンテンツタイプapplication-pdf
で返すことができましたが、そこからどのように処理するのか分かりません。私はちょうどPDFをダウンロードし、PDFビューアを使用して印刷するようにユーザに促すことができます知っている
<iframe id="printFile" style="display:none"></iframe>
:
this.printQueueService.getPrintContent(printRequests) //customers to receive letters
.subscribe((data: Blob) => {
var element: HTMLIFrameElement = <HTMLIFrameElement>document.getElementById('printFile');
element.innerText = data + ""; //what do I do with the blob?
element.contentWindow.print();
});
HTML要素:
は、ここに私のAngular2コンポーネントAPI呼び出しのしかし、私はむしろユーザーに余分なステップを踏み出させることはしません。
ユーザーが適切なプラグインとブラウザをサポートしているため、ブラウザでPDFをレンダリングして印刷しないでください。
ブラウザにブロブを印刷するにはどのようなオプションがありますか?
あなたはIFRAMEのSRCの一部としてそれを使用することができます。
代わりに、私は次のように新しいタブで生成されたPDFを開くことにしました。 –
さらに優れています。そのようにあなたのAPIを設計しないでください - iframeのリクエストを使用してpdfを取得してください。それ以外の場合は、jsコンテキストを処理するための余分なメモリがたくさんあります。 –
@ DanielA.White IFrameのAPIへの投稿リクエストはどのようにして作成しますか? PDFは動的に生成されます。 –