动态地将段落保存为PDF?

时间:2015-12-21 15:15:42

标签: javascript jquery html css pdf

是否可以使用JSPDF将包含边框的段落<p>保存为PDF,并将格式化并将元素保留在页面的中心?

以下代码允许在将文本粘贴到textarea时生成段落。正如在此Fiddle中所示,似乎可以将表保存为PDF。

但是,是否可以动态地将以下动态段落和边框保存为PDF?

如果可以提供更新的小提琴,我将非常感激,因为我还不熟悉编码。

JSFiddle

谢谢!

HTML:

 <div align="center"> 
     <h4 align="center">
         <u>Paste text in the field below to divide text into paragraphs.</u>
    </h4> 
    <textarea placeholder="Type text here, then press the button below." cols="50" id="textarea1" rows="10">
    </textarea>
    <br><br>
    <button id="Go">Divide Text into Paragraphs!</button> 
</div>
<hr> <h2 align="center">Dynamic Paragraphs will appear below: <br>[Paragraphs below for saving as PDF]</h2> <div> <div align="center" id="text_land" style="font-family: monospace"> </div></div>

JQuery的:

   $(function(){$("#Go").on("click",function(){for(var t=$("textarea").val(),e=300;t.length;){for(;t.length>e&&" "!==t.charAt(e);)e++;$("#text_land").append("<br></br><p>"+t.substring(0,e)+"</p><br></br>"),t=t.substring(e),e=300,$("p").attr("contenteditable","true"),$("p").addClass("text")}})}),$("select").on("change",function(){var t=$("#text_land p"),e=this.dataset.property;t.css(e,this.value)}).prop("selectedIndex",0),end;

CSS:

@media print{p{page-break-inside:avoid}}p{position:relative}@media print{.no-print,.no-print *{display:none !important}}p{border-style:solid}p{color:#000}p{display:block;text-align:justify;border-width:5px;font-size:19px}p{overflow:hidden;height:300px;width:460px;word-wrap:break-word}

2 个答案:

答案 0 :(得分:7)

我已经编辑了你的代码。请see your sample here (edited)

我用过:

 background-color: white;

on“text_land”

编辑:

我检查了html2canvas.js它解析了html元素树并根据它们的风格绘制。

最顶层html元素的宽度 - 渲染树的“text_land”被视为结果图像的宽度。

,所有在页面缩放后都超出“text_land”div的内容

我们的想法是拥有独立的打印样式。

答案 1 :(得分:3)

我对你的两个小提琴进行了改造,想出了一些有用的东西,请看看这个小提琴

$(document).on('click','#Go',function(){                                
var value = $('#textarea1').val();


a=value.replace(/\r?\n/g,'<br/>');
$('#text_land p').html(a);
console.log(a);
});

$(document).on('click','#print',function(){


 var pdf = new jsPDF('p', 'pt', 'letter');
 pdf.addHTML($('#text_land')[0], function () {
 pdf.save('Test.pdf');
 });

});

我使用过html2canvas库。

这是a link to fiddle

UPDATED FIDDLE

updated fiddle where resizing windows does not affect the oucome