Вопрос

Я сейчас создаю динамический файл PDF, который содержит данные примерно о 10 000 пользователей. Обычно приложение разработано с использованием MySQL и PHP.Динамический контент настолько тяжелый, что мне было трудно его обрабатывать с помощью fpdf() сорт.Поэтому я преобразовал свою выходную PHP-страницу в HTML-файл, используя ob_get_clean().Теперь html-файл успешно сгенерирован, а также файл pdf.Но я хочу оставить разрыв страницы после данных каждого пользователя, то есть данные каждого пользователя должны начинаться на новой странице.Я не мог использовать какие-либо HTML-теги, поскольку в динамически создаваемом HTML-файле все отсутствует. <html> и </html> теги.Пожалуйста, помогите мне, как сделать разрыв страницы в PDF-файле после данных каждого пользователя...Заранее спасибо :)

Это было полезно?

Решение

Я понял это только после того, как столкнулся с той же проблемой.анализатор, который они используют, ДЕЙСТВИТЕЛЬНО поддерживает тег разрыва страницы, но html2pdf не работает.

Я думаю, что у меня это работает, внеся следующие изменения в html2pdf.class:

вокруг строки 4174, первое, что внутри:

protected function _tag_close_P($param){

должно быть:

   if($this->parsingCss->value['page-break-after'] == "always")
        $this->_setNewPage();

около строки 2961, первое, что внутри:

protected function _tag_close_DIV($param, $other='div'){

должно быть:

 if($this->parsingCss->value['page-break-after'] == "always")
        $this->_setNewPage();

Другие советы

html2pdf поддерживает страница ярлык:

protected function _tag_open_PAGE($param) {} 

в строке 2229.Там вы можете увидеть, какие атрибуты поддерживаются.Например, следующее создает одну страницу в альбомной ориентации и одну в портретном режиме:

<page orientation="l">
... some content ...
</page>
<page orientation="p">
... some content ...
</page>

На основе работы Макдабби (которая не работает).Но благодаря ему идея верная.

HTML2Pdf v4.03

Например, мы хотим проанализировать тег DIV:

html2pdf.class.php строка 2948:

protected function _tag_close_DIV($param, $other='div')
{
    if ($this->parsingCss->value['page-break-after'] == "always")
      $this->_setNewPage(null, '', null, $this->_defaultTop);
      $this->parsingCss->setPosition();
    ...
}

parsingCss.class.php Строка 114:

//add a new style declaration
public function initStyle()
{
    ...
    $this->value['page-break-after'] = null;
}

Строка 1024 добавляет новый обработчик в случае переключателя:

case 'page-break-after':
    $this->value[$nom] = $val;
    break;

И тогда, чтобы это работало, ваш html-контент должен содержать элемент разрыва.

 <div style="page-break-after:always; clear:both"></div>

Следите за стилем, чувствительным к регистру, не уверен, что плагин справится с этим.

Возможно, вы захотите использовать CSS, например:

h1 {page-break-before:always}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top