2017-09-30 7 views
1

私は、ユーザにローカルでダウンロードするように促すのではなく、結果のPDFドキュメントをサーバに保存する方法を知っていたのだろうか?これを使用するPDFをサーバーに保存するにはどうすればよいですか? css2pdf @ cloudformatter xeponline

http://www.cloudformatter.com/CSS2Pdf

感謝

編集: 私はPDFを開始するには、次のJSを使用しています。以下のコメントが関連しているような場所で答えを残し

$(function(){ 
    $('#generatePDF').click(function(e) { 
     e.preventDefault(); 

     var pdfdata = xepOnline.Formatter.Format('printableInvoice', 
      { 
       pageWidth:'216mm', 
       pageHeight:'279mm', 
       render: 'base64' 
      } 
     ); 
     console.log(pdfdata); 
    }); 
}); 
+0

私はあなたが正しい、あなたのサーバーを意味すると仮定? –

答えて

0

。元の答えは、最終的なPDFではなく、ソース情報(「base64」オプションを使用)を取得する方法でした。

だから、メモリ内にある最後のPDFを得るために、あなたはGitHubの中にコードを調べる場合:

線602で「他」から始まる

https://github.com/Xportability/css-to-pdf/blob/master/js/xepOnline.jqPlugin.js

を...この「他」が実行されますあなたがダウンロード以外に何かを強制した場合。 という方法で「newwin」または「embed」を選択した場合、JSをスニッフィングしたブラウザはSafari、IE、モバイルブラウザでダウンロードを強制しませんでしたが、この「else」が実行されます。

正常なAJAXポストでは、関数 "xepOnline.Formatter .__ postBackSuccess"が実行されます。この関数は、行863から開始します。行865では、実際のP​​DFのbase64でエンコードされたバイトがロードされます。そのコード行でサイトをデバッグしてデバッグすると、base64でエンコードされたバイトになるvar "base64"の値を取得できます。

FirefoxとChromeのみを検討していたら、結果をサーバーに返信して表示しないように、コードにいくつかの変更を加えることができます。すべてのブラウザを考慮する必要がある場合は、いくつかのオプションを追加する必要があります(たとえば、 'memory'というように、すべてのブラウザのスニッフィングをスキップし、AJAXバージョンを実行しますが、それ自身の成功関数を使用します)。

ライブラリにこれが、あなたはそれを引くと、いくつかの改造を自分で作ることは自由です。

+0

はいこんにちは私は自分のサーバーに意味。情報をありがとうございました、病気に戻ってきます:)私が問題を抱えている場合: –

+0

フィドルはコンソールログに「false」を出力するだけですか?私はChromeとSafariの両方で試しました。私のウェブサイトでも同じことが起こりますが、不思議なことに、コンソールログが表示されてからページがリロードされ、すぐにメッセージが消えるようです:jquery.min.js:4ドキュメントはMIMEタイプapplication/pdf 。 cloudformatter.comのドキュメントを見ると、レンダリングで 'base64'のオプションが表示されず、どのレンダリングを使用してもドキュメントがダウンロードされます( 'none'を指定しても)。私は私のJSでOPを更新しました。 –

+0

あなたは正しいです、私は残念です。コード内にありますが、あなたが探しているものではありません。 base64は、デバッグのためにソース情報をエンコードします。私は、JSへの編集をどのようにして行うことができるかという答えを修正しました。 –

関連する問題