Как добавить поля после использования режимов разрыва страницы с html2pdf. js? - PullRequest
0 голосов
/ 03 марта 2020

Преобразование html в pdf с использованием html2pdf. Мне нужно добавить margin-top и margin-bottom после элементов разрыва страницы.

Это режимы разрыва страницы

Пример FIDDLE

var element = document.getElementById('element-to-print');


 var opt = {
            margin: [0, 0, 30, 0], //top, left, buttom, right,
            filename: 'my_file.pdf',
            image: {type: 'jpeg',quality: 0.98},
            html2canvas: {dpi: 192, scale: 2, letterRendering: true},
            pagebreak: {mode: 'avoid-all'},
            jsPDF: {unit: 'pt', format: 'a4', orientation: 'portrait'}
        };
        var worker = html2pdf();

            console.log(worker);
            worker.set(opt)
                  .from(element)
                  .toPdf()
                  .get('pdf')
                  .then(function (doc) {
                      var totalPages = doc.internal.getNumberOfPages();
                      for (var i=1; i<=totalPages; i++) {
                          if (i > 1) {
                            doc.setPage(i);
                            //?????
                          }
                      }

                 }).save();  

Это аналогичный случай .

1 Ответ

0 голосов
/ 19 марта 2020

Здесь я разделил содержимое для рендеринга на две страницы в формате PDF, используя правильный разрыв страницы, а также установил поле для каждой страницы.

<button id="btnTest">Generate PDF</button>
  <div id ="root">

  <div>
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. 
  </div>
 <div id="nextpage1">
    Lorem Ipsum is simply dummied text of the printing and typesetting industry. 
 </div>

div {
   outline: red solid 1px;
   page-break-inside: avoid;
}
#nextpage1 {
  page-break-before: always;
}

 html2pdf().from(element).set({
   margin:       [1, 0, 0, 0], 
   filename: 'samplepdf.pdf',
   pageBreak: { mode: 'css', before:'#nextpage1'},
   jsPDF: {orientation: 'landscape', unit: 'in', format: 'letter'}
}).toPdf().get('pdf').then(function (pdf) {
   var totalPages = pdf.internal.getNumberOfPages();
   for (i = 1; i <= totalPages; i++) {
     pdf.setPage(i);
     pdf.setFontSize(10);
     pdf.setTextColor(150);
     pdf.text('This is the header text', (pdf.internal.pageSize.getWidth()/2.40), (pdf.internal.pageSize.getHeight()-8));      
     pdf.text('Page ' + i + ' of ' + totalPages, pdf.internal.pageSize.getWidth()/2.25), (pdf.internal.pageSize.getHeight() - 1));
  }}).save();

Попробуйте пожалуйста, дайте мне знать.

...