【问题标题】:html2pdf not respecting div width and height explicitly sethtml2pdf不尊重div的宽度和高度明确设置
【发布时间】:2020-02-07 14:20:51
【问题描述】:

当我生成 PDF 时,我正在构建我的 div 元素并将其放入 html2pdf 库 (link) 中。我正在使用这样的 JS 逻辑生成 div 元素的大小:

switch (sizeSelected) {
    case '3x5':
        canvasSizeObj.width = 288;
        canvasSizeObj.height = 480;
        break;
    case '4x6':
        canvasSizeObj.width = 384;
        canvasSizeObj.height = 576;
        break;
    case '5x7':
        canvasSizeObj.width = 480;
        canvasSizeObj.height = 672;
        break;
    case '8x8':
        canvasSizeObj.width = 768;
        canvasSizeObj.height = 768;
        break;
}

var divContent = document.createElement('div'),
    popupDOMContent = document.createElement('div');

    divContent.classList.add('popupDOMContent');
    divContent.setAttribute('style','height:'+canvasSizeObj.height+'px');
    divContent.setAttribute('style','width:'+canvasSizeObj.width+'px');
    document.body.appendChild(divContent);
    popupDOMContent.classList.add('popupDOMContent');

html2pdf()
    .set({filename:petName+'_Kennel_Card_'+sizeSelected+'.pdf',margin:1})
    .from(popupDOMContent)
    .save();

popupDOMContent.remove();

如果我选择不删除它,我可以看到 body 上的元素,并且我可以在下面的屏幕截图中看到为元素设置的大小:

但是当我打开 PDF 时,它不支持该大小而是全宽,如下面的屏幕截图所示:

我在这里错过了什么?

【问题讨论】:

    标签: javascript html-to-pdf


    【解决方案1】:

    不要设置画布的大小,设置 PDF 的大小。比如:

    html2pdf()
        .set({
            filename:petName+'_Kennel_Card_'+sizeSelected+'.pdf',
            margin:1
            jsPDF: {format:[canvasSizeObj.width,canvasSizeObj.height]}
         })
        .from(popupDOMContent)
        .save();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 2015-08-01
      • 2022-01-23
      • 2013-10-22
      相关资源
      最近更新 更多