jsPDF-fromHTML未在正确的页面上写入
我正在用jsPDF做一个小项目。 我需要写彩色文本,改变字体大小和使用粗体文本。因此,fromHtml是我的选择,因为我可以很容易地用css和html来实现 问题是,只有大约一半的页面可以用于使用fromHtml进行编写。如果它试图写在它之外,一个新的页面被创建,文本在那里被wirtten 这里是一个带有javascript代码的小html示例,可以自己运行jsPDF-fromHTML未在正确的页面上写入,jspdf,fromhtml,Jspdf,Fromhtml,我正在用jsPDF做一个小项目。 我需要写彩色文本,改变字体大小和使用粗体文本。因此,fromHtml是我的选择,因为我可以很容易地用css和html来实现 问题是,只有大约一半的页面可以用于使用fromHtml进行编写。如果它试图写在它之外,一个新的页面被创建,文本在那里被wirtten 这里是一个带有javascript代码的小html示例,可以自己运行 <!DOCTYPE html> <html> <meta http-equiv="Content-Type
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js" integrity="sha384-NaWTHo/8YCBYJ59830LTz/P4aQZK1sS0SneOgAvhsIl3zBu8r9RevNg5lHCHAuQ/" crossorigin="anonymous"></script>
<script type="text/javascript">
function fromHtmlTest() {
var doc = new jsPDF({
orientation: 'l',
unit: 'px',
format: [30, 30]
});
// doc.setFontSize(1); // the workaround for this problem
var toWrite = ["1st", "2nd", "3rd", "4th", "5th", "6th", "7th", "8th"];
for (var i = 0; i < toWrite.length; i++) {
doc.fromHTML(
'<div style="font-size:1">' + toWrite[i] + '</div>'
, 1 // x
, i // y
, {
'width': 10,
'elementHandlers': {}
}
)
}
doc.save('Test.pdf');
}
</script>
<body>
<input type="button" value="Start" onclick="fromHtmlTest()" />
</body>
函数fromHtmlTest(){
var doc=新的jsPDF({
方向:“l”,
单位:px,
格式:[30,30]
});
//doc.setFontSize(1);//此问题的解决方法
var toWrite=[“第一”、“第二”、“第三”、“第四”、“第五”、“第六”、“第七”、“第八”];
对于(变量i=0;i
以下是运行代码后的pdf格式:
fromHtml示例-代码结果
“8”应该直接在“7”下面,而不是在下一页。
如果将“9th”添加到数组中,还将添加另一个页面
如何将整个页面与fromHtml一起使用
编辑:
解决方案“doc.setFontSize(1);”就是这样做的。我已将其作为注释添加到示例代码中。经过一段时间的休息,并再次处理此问题,我进行了更多的测试。我已经找到了这个问题的原因和解决方法。这个问题的背景是fromHTML没有为文档本身提供css的前端大小。因此,当放置“8”时,代码检查页面是否有空间,但如果内部文档大小不是css中的“1”,则选择下一页。解决方案“doc.setFontSize(1);”就是这样做的。我已经将它作为注释添加到示例代码中。经过一些休息并再次处理这个问题后,我做了一些更多的测试。我已经找到了这个问题的原因和解决方法。这个问题的背景是fromHTML没有为文档本身提供css的前端大小。因此,当放置“8”时,代码检查页面是否有空间,但如果内部文档大小不是css中的“1”,则选择下一页。解决方案“doc.setFontSize(1);”就是这样做的。我已将其作为注释添加到示例代码中。