我正在使用jspdf保存一个PDF文件。我的HTML文件中有表格,而且表格没有标题。但是jspdf的功能是在每一页上自动重复表格的第一行,并且它们是重叠的。我不想在每一个新页上都有标题。有什么方法可以这样做。附上page的屏幕截图。提前谢谢!!!

$scope.SavePage = function() {
    var doc = new jsPDF('p', 'pt', 'a4', true);
    margins = {
        top: 200,
        bottom: 60,
        left: 40,
        width: 522
    };
    specialElementHandlers = {
        '#ignoreComponent': function(element, renderer) {
            return true
        },
        '#ignorePage': function(element, renderer) {
            return true
        }
    };

var source = $('#pageInformationPdf')[0];

doc.fromHTML(source, margins.left, margins.top, {
        'width': margins.width,
        'pagesplit': true,
        'elementHandlers': specialElementHandlers
    },
    function(dispose) {
        doc.save(pageName + '.pdf');
        }, margins);

}

最佳答案

您可以使用drawHeaderRow钩子。下面是示例代码

function generate() {
  var doc = new jsPDF('p', 'pt');
  var elem = document.getElementById('table');
  var data = doc.autoTableHtmlToJson(elem);

  //Do not print the header if current page not the first page.
  doc.autoTable(data.columns, data.rows, {
    drawHeaderRow: function(row, data) {
      if (data.pageCount > 1) {
        return false;
      }
    }
  });

  doc.save("table.pdf");
}

html格式
<button onclick="generate()">Generate PDF</button>

<table id="table" style="display: none;">
    <thead>
    <tr>
        <th>ID</th>
        <th>First name</th>
        <th>Last name</th>
        <th>Email</th>
        <th>Country</th>
        <th>IP-address</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td align="right">1</td>
        <td>Donna</td>
        <td>Moore</td>
        <td>[email protected]</td>
        <td>China</td>
        <td>211.56.242.221</td>
    </tr>
    <tr>
        <td align="right">2</td>
        <td>Janice</td>
        <td>Henry</td>
        <td>[email protected]</td>
        <td>Ukraine</td>
        <td>38.36.7.199</td>
    </tr>
    </tbody>
</table>

07-28 10:45