Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jsPDF-fromHTML未在正确的页面上写入_Jspdf_Fromhtml - Fatal编程技术网

jsPDF-fromHTML未在正确的页面上写入

jsPDF-fromHTML未在正确的页面上写入,jspdf,fromhtml,Jspdf,Fromhtml,我正在用jsPDF做一个小项目。 我需要写彩色文本,改变字体大小和使用粗体文本。因此,fromHtml是我的选择,因为我可以很容易地用css和html来实现 问题是,只有大约一半的页面可以用于使用fromHtml进行编写。如果它试图写在它之外,一个新的页面被创建,文本在那里被wirtten 这里是一个带有javascript代码的小html示例,可以自己运行 <!DOCTYPE html> <html> <meta http-equiv="Content-Type

我正在用jsPDF做一个小项目。 我需要写彩色文本,改变字体大小和使用粗体文本。因此,fromHtml是我的选择,因为我可以很容易地用css和html来实现

问题是,只有大约一半的页面可以用于使用fromHtml进行编写。如果它试图写在它之外,一个新的页面被创建,文本在那里被wirtten

这里是一个带有javascript代码的小html示例,可以自己运行

<!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);”就是这样做的。我已将其作为注释添加到示例代码中。