2017-01-18 25 views
0

私はjspdf libraryを使ってhtmlからPDFファイルを生成しています。それは本当に素晴らしいものです。しかし、私はpdfの各ページの最後の行に問題があります。ここでjspdf - 最後の段落行が削除されています

DEMOと私のjavascriptです:

var pdf = new jsPDF(); 
$('#generatePdfBtn').click(function() { 
    pdf.fromHTML($('#printableContent').html(), 15, 15, { 
     'width': 400 
    }); 
    pdf.save('myPdf.pdf'); 
}); 

あなたがボタンをクリックしてPDFを生成するとき、あなたは通常、上の最初のページの最後に、我々は「pararaph 30」を持っていることを見てますpdfの次のページに、次の「pararaph 31」の段落を見てください。しかし私はそれを見ず、代わりに "パララフ32"を見る。なぜ最後の行が失われているのですか?どんなアイデアですか?

+0

単なる考え:なぜ印刷コマンドを使用しないと、ユーザーはpdfとして保存を選択できますか。すべてのブラウザでサポートされています。迅速かつ簡単です。印刷可能な内容のみを印刷することができます。 –

+0

私はしようとしましたが、そこにページが正しく表示されていないので、良い考えではありません。 – aidadev

+0

@media print cssを使用して、printablecontentだけを表示してCSS値を調整しようとしましたか、他の問題がありました。 –

答えて

0

私はマージン内に書かれているので、私はそれをカットすると思います。最も簡単な方法は、31行目がすべて重複するループを作ることです。最高の解決策ではなく、最も速い解決策です。

1

よく分かりますが、ページ区切りを設定する必要がある場合は、""を入れてください。このようにして、テキストが切り取られるのを防ぐことができます。

ワーキングDEMO:http://jsfiddle.net/nq361uoz/4/

は残念ながら、これはGitHubリポジトリにopen状態のままであるjsPDFにおける既知のバグです。ここ

さらに詳しい情報:https://github.com/MrRio/jsPDF/issues/555

この情報がお役に立てば幸い!

+0

はい私はあなたが ""入れるならそれが働いているのを見ます、しかし私のケースでは私は動的な内容を持っています、そしてそれはもっと長くて短くなります。私はページが壊れている必要があるか分からない。 @David R – aidadev

+0

この '<! - ADD_PAGE - > 'を追加するとブレークが追加され、コンテンツは次のページに移動していることがわかりました。しかし、私はこれをどのように動的に行うことができるのだろうかと思っています。 @David R – aidadev

0

ことは、これを試してみてください:

があなたのjspdf.jsまたはjspdf.debug.jsローカルファイルを開き、これを変更します。

this.pdf.internal.getVerticalCoordinateString(this.y), style.color, "Td");

style.colorを消去し、として保存:

this.pdf.internal.getVerticalCoordinateString(this.y), "Td");

そして、それが正常に動作しますfirefoxとchromeについて少なくともそれは私のために働いており、これはその失敗を解決するまでの解決策です。

関連する問題