Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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
Javascript jsPDF大表格,标题在第二页重叠_Javascript_Jquery_Pdf_Svg_Jspdf - Fatal编程技术网

Javascript jsPDF大表格,标题在第二页重叠

Javascript jsPDF大表格,标题在第二页重叠,javascript,jquery,pdf,svg,jspdf,Javascript,Jquery,Pdf,Svg,Jspdf,我正在使用jsPDF和svg\u to\u pdf将svg和表导出为pdf。这是我的代码: function svg_to_pdf(svg, callback) { console.log("svgtopdf.js"); svgAsDataUri(svg, {}, function(svg_uri) { var image = document.createElement('img'); image.src = svg_uri; image.onload = function() { v

我正在使用
jsPDF
svg\u to\u pdf
将svg和表导出为pdf。这是我的代码:

function svg_to_pdf(svg, callback) {

console.log("svgtopdf.js");
svgAsDataUri(svg, {}, function(svg_uri) {
var image = document.createElement('img');

image.src = svg_uri;
image.onload = function() {
  var canvas = document.createElement('canvas');
  var context = canvas.getContext('2d');
  var doc = new jsPDF('portrait', 'pt', 'a4', true);
  var dataUrl;

  source = $('#datos_alumnos')[0];
  specialElementHandlers = {
      '#bypassme' : function(element, renderer){
          return true;
      }
  };

  margins = {
            top: 40,
            bottom: 60,
            left: 40,
            width: 270
        };


  canvas.width = image.width;
  canvas.height = image.height;
  context.drawImage(image, 0, 0, image.width, image.height);
  dataUrl = canvas.toDataURL('image/jpeg');
  doc.addImage(dataUrl, 'JPEG', 0, 0, 500, 263);


  doc.fromHTML(
    source,
    40,
    270, {
        'width': 550,
        'elementHandlers': specialElementHandlers
    },

    function(dispose){
        //doc.save('SVG.pdf');
    }
    , margins);

callback(doc);
}
});
}
结果是一个PDF文件,上面是图像,下一个是表格。当它进入第二页时,问题就出现了,因为表的标题与第一行重叠,看起来是这样的


是否可以删除第二页上的标题?

好的,如果您将此脚本用于jsPDF,那么我找到了一个可能的解决方案

例如,您可以下载它,并将第5201行修改为负值

    this.margins.top = -50;
在PDF的第二页上没有标题


我尝试过使用这些代码,但没有多大成功,如果我找到更好的方法,我会更新这个答案(不知道我是否被允许这样做)

绘制表格时,只需使用:

startY: doc.internal.getNumberOfPages() > 1 ? doc.autoTableEndPosY() + 20 : 200,

尝试添加css类,如- thead{ 显示:表格标题组 } tfoot{ 显示:表格行组 } tr{ 内部分页符:避免
}

您能提供一个示例表吗?该表是在PHP上生成的,看起来是这样的,PDF上的表的开头没有问题。这是第一页。我尝试使用
自动表
,问题是,我正在将
SVG
和表格从
SVG\u转换为\u pdf
,我无法调用
autotable
SVG\u转换为\u pdf
的函数。请解释一下!