PhantomJS PDF разрыв страницы

Я создаю отчет в формате PDF с заголовком, автоматически сгенерированным phantomjs. В отчете у меня есть длинный div, который содержит текст, пустые строки, простые таблицы данных и т. Д. Поскольку я считаю, что phantomjs может иметь проблемы с разрывом страницы, я вычисляю разрыв страницы вручную, разбиваю длинный div на несколько div с разрывом страницы. в конце каждого дел.

Вот мой расчет в jQuery(документ).ready()

//pagination the Notes pages
if (encData.pnotes && encData.pnotes.length > 0) {
pageCnt++;
var $notes = jQuery('<div id="pageNotes" class="notes" style="width:100%;margin-top:100px;border:1px solid red">' + 
  pNotesString + '</div>');
$body.append($notes);
var height = 0;
var children = $notes.children();
var p = children.slice(0);
var pages = [];
var counter = 0;
for (var i = 0; i < children.length; i++) {
  if (height + children[i].offsetHeight < 1350)
    height += children[i].offsetHeight;
  else {
    pages.push([counter, i]);
    height = 0;
    counter = i;
  }
} 
pages.push([counter, children.length]);
for (var i = 0; i < pages.length; i++) {
  //first notes page
  if (i == 0) {
    $notes.children().slice(pages[i][1]).remove();
    $notes.after('<div style="border:1px solid black;height:1px"></div><div id="pageNotesBreak" style="page-break-after:always">&nbsp;</div>');
  } 
  else {
    pageCnt++;
    var $new = jQuery('<div id="page' + pageCnt + '" class="notes" style="width:100%;margin-top:100px;border:1px solid blue"></div>');
    $new.append(p.slice(pages[i][0], pages[i][1]));
    $body.append($new);
    $body.append('<div style="border:1px solid black;height:1px"></div><div id="pageBreak' + pageCnt + '" style="page-break-after:always">&nbsp;</div>');
  }
}

"<div style='border:1px solid black;height:1px'>" просто глупый маркер, чтобы найти, где мои разрывы страниц в PDF. 1350px в предполагаемой высоте объектов, где должен быть создан разрыв страницы, когда я пересекаю всех потомков длинного div.

В Chrome я вижу, что у меня всего 5 страниц. Но когда он отображается в PDF, количество страниц увеличивается до 6 или 7 в зависимости от размера шрифта, высоты строки и т. Д.

Вот изображение страниц

содержимое div проходит через заголовок

Кто-нибудь знает причину проблемы? И как это решить вообще.

0 ответов

Другие вопросы по тегам