2016-05-13 16 views
2

私が追加したすべてのスタイルを含むWebページをPDFに変換したい。 私はjspdf.jsとhtml2Canvasを使用しました。しかし、私はPDF形式でぼやけた画像しか得ていません。 多くのJavaScriptコードを検索しましたが、正しいコードが見つかりませんでした。ウェブページをスタイルでPDFに変換する

私が書いたスクリプトは次のとおりです。

function getPDF() { 
 
    html2canvas(document.body, { 
 
    onrendered: function(canvas) { 
 
     var img = canvas.toDataURL("Image/jpeg"); 
 
     //window.open(img); 
 
     var doc = new jsPDF({ 
 
     unit: 'px', 
 
     format: 'a4' 
 
     }); 
 
     doc.addImage(img, 'JPEG', 0, 0, 440, 627); 
 
     doc.save("download"); 
 

 
    } 
 
    }); 
 
}

はありがとうございました!

答えて

0

寄与しているものがいくつかあります。

canvas.toDataURLのエンコーダオプションがないため、デフォルト値を取得しています。デフォルトでは、低画質の画像が作成されている可能性があります。最高品質のJPEG画像のためにこれを試してみてください:

var img = canvas.toDataURL("Image/jpeg", 1.0); 

あなたはまた、あなたのjsPDF測定とオブジェクトではなく、ピクセルを作成してみてください:

var pdf = new jsPDF("p", "mm", "a4"); // jsPDF(orientation, units, format) 

そして、あなたは画像を追加、寸法にそれを拡大ページの:

pdf.addImage(imgData, 'JPEG', 10, 10, 190, 277); // 190x277 mm @ (10,10)mm 

これは、より良い画像品質を実現するかどうかを確認します。

+0

おかげでマイケル...これはa4のサイズを与えていない、印刷された画像もpdfのサイズよりも小さく、寸法を変えることで修正できますか? – MSKP

+0

はい、寸法を変更できます。私は、jsPDFコンストラクタ(ポートレートの場合は "p")で正しい方向で自分の答えを更新し、ページの寸法を変更しました。 A4は210mm×297mmです。出力に適した寸法を得るには、実験が必要な場合があります。 –

+0

ありがとうございました。私のWebページにはラジオボタンが表示されていますが、印刷された画像には表示されません.html @ canvasはその値をとっていませんか? ?? – MSKP

関連する問題