【问题标题】:jsPDF Big table, headers overlap in second pagejsPDF大表,标题在第二页重叠
【发布时间】:2016-06-22 22:24:27
【问题描述】:

我正在使用 jsPDFsvg_to_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,顶部是图像,然后是表格。进入第二页时出现问题,因为表格的标题与第一行重叠,看起来像这样。

http://i.imgur.com/vlfm4Fv.png

第二页的页眉可以去掉吗?

【问题讨论】:

  • 您能提供一个示例表吗?
  • 表格是在PHP上生成的,看起来像link,在PDF表格的开头没有问题。
  • 这个link是第一页。
  • 我尝试使用autotable,问题是我同时转换了SVGsvg_to_pdf 的表格,我无法从svg_to_pdf 调用autotable 的函数。

标签: javascript jquery pdf svg jspdf


【解决方案1】:

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

https://raw.githubusercontent.com/MrRio/jsPDF/master/dist/jspdf.debug.js

你可以下载它,例如修改5201行为负值;

    this.margins.top = -50;

这样,PDF 的第二页上就没有页眉了。

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

【讨论】:

    【解决方案2】:

    当你绘制表格时,只需使用:

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

    【讨论】:

      【解决方案3】:

      尝试添加 css 类,例如 - 头{ 显示:表头组 } 脚{ 显示:表行组 } tr { page-break-inside:避免 }

      【讨论】:

      • 请解释一下!
      猜你喜欢
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-03
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多