jsPDF 改变页面格式

问题描述 投票:0回答:4

我有一个在页面上设置页脚的功能。但我想让代码更灵活,并添加一个 if 语句,当文档为“a4”或“a3”时,我希望它在不同的位置设置页脚。

function footer(){
    doc.setFontSize(11);
    doc.text(180,280, 'Seite ' + doc.page);
    doc.page ++;
    }

但是我在页面启动后找不到更改格式的参数:

var doc = new jsPDF('p', 'mm', 'a4');

我试过:

doc.format('a3');
doc.setFormat = 'a3';
doc.setPageFormat('a3');

但都不起作用。

是否有人知道即使在“new jsPDF”启动后也可以在代码中的任何位置更改页面格式的参数?或者这根本行不通?

提前致谢!

jspdf
4个回答
6
投票

您可以在每个新页面上设置格式和方向:

doc.addPage('a3', 'portrait');

方向是“纵向”或“横向”

或者你也可以设置高度和宽度:

doc.addPage(newWidth, newHeight);

在这种情况下,单位将与您的 jsPDF 实例化中的单位相同('mm'):

var doc = new jsPDF('p', 'mm', 'a4');

0
投票
  /* -----------PDF GENERATE--------- */
  @ViewChild('reportContent') reportContent: ElementRef;
  downloadPdf() {
    const doc = new jsPDF('l', 'mm', 'a3');

    const specialElementHandlers = {
      '#editor': function (element, renderer) {
        return true;
      }
    };
    const content = this.reportContent.nativeElement;
    doc.fromHTML(content.innerHTML, 15, 10, {

      'width': 100,
      'elementHandlers': specialElementHandlers
    });
    doc.save('ReminderReport' + '.pdf');
  }

0
投票

我还注意到,如果你有 1 页(我不完全确定它如何处理超过 1 页。我会谈到......),你可以使用你创建的 jsPDF 对象并运行

setWidth(); 
setHeight();
方法通过
doc.internal.pageSize.setWidth(some number);
和身高一样明智。

当我深入研究这些方法时,我注意到虽然 setWidth 和 setHeight 只接受一个参数,但要更新对象,它需要将 2 个参数分别传递给 setWidth 和 setHeight 中的另一个方法。具体来说,传递给 setWidth 或 setHeight 的数字和要更改的页码。我是 jsPDF 的新手(我只需要它来完成一项基本任务,所以我可能不会深入研究它),所以我不确定它是否像这样工作,但我想你可以设置当前您正在处理的页面(可以通过

doc.internal.pages['some page']
doc.page ++;
访问),这可能对某人有用...

并不是说这很深奥,但它可能对某人有用。


0
投票

先创建带有功能链接的按钮,然后设置功能,请仔细按照步骤操作,谢谢。

注意:

'p'
是布局,表示纵向,所以您可以使用
'l'
横向

步骤#1:创建按钮。

    <button onclick="pipeCharttPDF('your_chart_id','PDF_file_name','p')" class="btn btn-sm btn-info">PDF
</button>

Step#2: 声明函数()。

<script type="text/javascript">
    function pipeCharttPDF(id, name, layout) {
            html2canvas(document.getElementById(id), {
                onrendered: function(canvas) {
                    var img = canvas.toDataURL(); //image data of canvas
                    var doc = new jsPDF(layout,'mm','a4');
                    doc.addImage(img, 10, 10);
                    doc.save(name + '.pdf');
                }
            });
        }
    </script>
© www.soinside.com 2019 - 2024. All rights reserved.