2016-08-22 14 views
0

次のようなコードを使用しています。link以下は、私が使ったpdf変換の関数です。HTMLからpdfに変換された結果がpdf

function pdfGenerator(){ 
    var doc = new jsPDF();  
    var elementHandler = { 
       '#ignorePDF': function (element, renderer) { 
       return true; 
       } 
      }; 
    var source = window.document.getElementsByTagName("body")[0]; 
    doc.fromHTML(
     source, 
     15, 
     15, 
     { 
      'width': 180,'elementHandlers': elementHandler 
     }); 

    doc.output("dataurlnewwindow"); 
} 

私は、次のlinkに言及した最新バージョンをダウンロードして、外部のjarファイルとしてそれを追加しています。 uは私のプロジェクトで

  • jspdf.js
  • jspdf.plugin.from_html.js
  • jspdf.plugin.split_text_to_size.js
  • jspdf.plugin.standard_fonts_metrics.js

のスクリプトを組み込む方法を提案喜ばできますか?私は出力として空白pdfを取得しています。

+0

問題を解決するために何を変更しようとしましたかをご記入ください。どんなフィドル? –

+0

'' timeout'関数を '' setTimeout(function(){doc.output( "dataurlnewwindow")})のように 'doc.output(" dataurlnewwindow ')ステートメントに追加してみてください;' –

+0

私は –

答えて

0

scriptタグのdefer属性を使用できます。

<script defer src="jspdf.js"></script> 
<script defer src="jspdf.plugin.from_html.js"></script> 
<script defer src="jspdf.plugin.split_text_to_size.js"></script> 
<script defer src="jspdf.plugin.standard_fonts_metrics.js"></script> 
<script defer src="/* YOUR SCRIPT HERE */"></script> 

このようにして、すべてのスクリプトが1つずつ順番に読み込まれます。 More info @ MDN

+0

ちょっと!私はあなたが外に追加したjspdfのzipファイルを削除して、あなたが提案し削除したスクリプトを追加しました。クロムコンソールで次のエラーが発生します。jspdf.plugin.from_html.js:424 Uncaught ReferenceError:$が定義されていません.GetCSS @ jspdf.plugin.from_html.js:424DrillForContent @ jspdf.plugin.from_html.js:492process @ jspdf.plugin.from_html。 js:550jsPDFAPI.fromHTML @ jspdf.plugin.from_html.js:591pdfGenerator @ prefilledform.js:37onclick @ DayCare.jsp:111 –

+0

このコードは** jquery **を内部で使用しているようですので、 ' '最初 –

0

は、あなたにもsettimeout文の中にこれを配置していることを確認し、ダウンロード可能なPDFとしてそれを作るために代わりdoc.output.save機能を使用することをお勧めします。ここに洗練されたコードがあります。

function pdfGenerator(){ 
    var doc = new jsPDF();  
    var elementHandler = { 
       '#ignorePDF': function (element, renderer) { 
       return true; 
       } 
      }; 
    var source = window.document.getElementsByTagName("body")[0]; 
    doc.fromHTML(
     source, 
     15, 
     15, 
     { 
      'width': 180,'elementHandlers': elementHandler 
     }); 

     setTimeout(function(){ 
      doc.save('test'); 
     },2000); 
} 

関連する問題