是否可以使用JSPDF将包含边框的段落<p>
保存为PDF,并将格式化并将元素保留在页面的中心?
以下代码允许在将文本粘贴到textarea
时生成段落。正如在此Fiddle中所示,似乎可以将表保存为PDF。
但是,是否可以动态地将以下动态段落和边框保存为PDF?
如果可以提供更新的小提琴,我将非常感激,因为我还不熟悉编码。
谢谢!
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}
答案 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库。
updated fiddle where resizing windows does not affect the oucome