質問:サーバー上の実際のディスクPDFファイルにリンクせずにPDFデータをHTML(5)ページに埋め込むことは可能ですか?実際のファイルを保存せずにHTMLにPDFを埋め込む
背景: 私はwebshop/erpシステムの文書をpdfファイルに切り替えました。これは一般的に、電子メールで請求書や領収書などを送るためのものです。
私はこの素晴らしいプレビュー/送付状のポップアップを表示し、請求書や注文確認書などを表示し、スタッフが顧客に送信する1つまたは複数のものを選択させることができます。以前は、私のポップアップに簡単に埋め込むことができるhtml文書を使用しましたが、電子メールで送信することはあまり適していません。
私は今、すべての文書をPDFファイルに変更しました。これはどちらも優れた方法であり、HTMLファイルと同様に簡単にゴミ箱に捕まえられません。
現在、私は私のサーバー内のファイルを一時ディレクトリに保存し、その後、私のポップアップの一環として、これとそれを埋め込む:
<object width="100%" height="100%" type="application/pdf" data="http://dev.foo.bar/temp/<rm-var document_filename>"></object>
これは動作しますが、それは「一時」ファイルの文書が開かれるたびに作成されますポップアップで。私たちの生産環境では、これはすぐにかなりのファイルを生成し、スペースを使い始めます。
TcPDFは、ファイルを保存せずにブラウザのPDFのみを表示するためのヘッダーとデータを送信できます。これは基本的に私が望むものですが、pdfデータが埋め込まれているか、サーバーの応答の一部です。私たちのシステムではポップアップが広く使われているので、htmlが必要です。スタッフが適切な文書を適切な顧客に手間をかけずに手に入れることができます。
1時間ほど前の特定のファイルを削除するためにcronjobを設定するのは気にしませんが、tcpdfのPHPファイル(または文字列データ)を追加する必要がない場合任意の追加のクリーンアップ、私はそれを好むだろう。クロンジョブや他の "依存関係"は、誰かがすべてを知らない設定を間違えた場合、将来的に問題を引き起こす可能性があります。
私はオブジェクト仕様の状態データはURLでなければならないことを思い出して、実際には私はpdf文字列をデータプロパティに入れようとしましたが、空白のページを取得しようとしました。私も、普通のmpdf->出力(ヌル、 'S')とこれを運ぶことなくbase64でエンコードしました。 –