2016-04-15 4 views
0

Я создаю отчеты с использованием DOMPDF в codeigniter. Этот pdf-файл содержит 10 страниц, в которых 3 страницы имеют желтый фон (страницы # 2, # 5 и # 8 и целая страница bgcolor должна быть желтой без полей или интервалов). Цвет фона страниц белизны.Создайте PDF-документ с каждым фоном страницы в разных цветах с помощью DOMPDF

Кроме того, я использую html5 анализатор DOMPDF в, установив "DOMPDF_ENABLE_HTML5PARSER" конфигурации, как верно. Это связано с тем, что в моем html-файле отчета содержатся теги html5, такие как нижний колонтитул.

Я гугле это и нашел одно решение, как поместить каждую страницу в отдельный «тела» тег, но Сгенерированный имеют все страницы в желтом фоне.

Ниже мой HTML шаблон:

<!doctype html> 
 
<html> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <title>Report</title> 
 
    <link rel="stylesheet" href="css/reports/styles.css" /> 
 
</head> 
 

 
<!-- Page #1 --> 
 

 
<body> 
 
    <div> 
 
    <div class="wrapper"> 
 
     <h1>Heading</h1> 
 
     <ul class="index"> 
 
     <li>2. report 1</li> 
 
     <li>5. report 2</li> 
 
     <li>8. report 3</li> 
 
     </ul> 
 
    </div> 
 
    </div> 
 
</body> 
 

 
<!-- Page #2 --> 
 

 
<body style="background-color: #f2ab02"> 
 
    <div> 
 
    <div class="wrapper"> 
 
     <h1>Report 1: Analysis &amp; Results</h1> 
 
     <img src="/img/reports/human-face.png" class="imglogo" /> 
 
    </div> 
 
    </div> 
 
</body> 
 

 
<!-- Page #3 --> 
 

 
<body> 
 
    <div> 
 
    <h1>Report 1: (1/2)</h1> 
 
    <table>...</table> 
 
    <footer> 
 
     <img src="/img/reports/logo.png" class="footer-logo" /> 
 
     <div class="page_number">3</div> 
 
    </footer> 
 
    </div> 
 
</body> 
 

 
<!-- Page #4 --> 
 

 
<body> 
 
    <div> 
 
    <h1>Report 1: (2/2)</h1> 
 
    <table>...</table> 
 
    <footer> 
 
     <img src="/img/reports/logo.png" class="footer-logo" /> 
 
     <div class="page_number">4</div> 
 
    </footer> 
 
    </div> 
 
</body> 
 

 
<!-- Page #5 --> 
 

 
<body style="background-color: #f2ab02"> 
 
    <div> 
 
    <div class="wrapper"> 
 
     <h1>Report 2: Analysis &amp; Results</h1> 
 
     <img src="/img/reports/human-face.png" class="imglogo" /> 
 
    </div> 
 
    </div> 
 
</body> 
 

 
<!-- Page #6 --> 
 

 
<body> 
 
    <div> 
 
    <h1>Report 2: (1/2)</h1> 
 
    <table>...</table> 
 
    <footer> 
 
     <img src="/img/reports/logo.png" class="footer-logo" /> 
 
     <div class="page_number">6</div> 
 
    </footer> 
 
    </div> 
 
</body> 
 

 
<!-- Page #7 --> 
 

 
<body> 
 
    <div> 
 
    <h1>Report 2: (2/2)</h1> 
 
    <table>...</table> 
 
    <footer> 
 
     <img src="/img/reports/logo.png" class="footer-logo" /> 
 
     <div class="page_number">7</div> 
 
    </footer> 
 
    </div> 
 
</body> 
 

 
<!-- Page #8 --> 
 

 
<body style="background-color: #f2ab02"> 
 
    <div> 
 
    <h1>Report 3: Analysis &amp; Results</h1> 
 
    <img src="/img/reports/human-face.png" class="imglogo" /> 
 
    </div> 
 
</body> 
 

 
<!-- Page #9 --> 
 

 
<body> 
 
    <div> 
 
    <h1>Report 3: (1/2)</h1> 
 
    <table>...</table> 
 
    <footer> 
 
     <img src="/img/reports/logo.png" class="footer-logo" /> 
 
     <div class="page_number">9</div> 
 
    </footer> 
 
    </div> 
 
</body> 
 

 
<!-- Page #10 --> 
 

 
<body> 
 
    <div> 
 
    <h1>Report 3: (2/2)</h1> 
 
    <table>...</table> 
 
    <footer> 
 
     <img src="/img/reports/logo.png" class="footer-logo" /> 
 
     <div class="page_number">10</div> 
 
    </footer> 
 
    </div> 
 
</body> 
 

 
</html>

Любая помощь будет оценена.

+0

Я не могу сказать, что рекомендую этот метод, но он может работать, если вы отключите анализатор HTML5 *. Основное использование этого анализатора в dompdf - исправление синтаксических ошибок. Множественные элементы BODY не разрешены, и поэтому после прохождения через парсер HTML5 несколько элементов тела будут объединены в один элемент. – BrianS

+0

У меня сейчас нет другого решения, так что продолжайте. – BrianS

+0

Отключение _HTML5 parser_ действительно сработало для меня. Спасибо за предложение и извините за поздний ответ. –

ответ

1

Я не могу сказать, что я рекомендую этот метод, но он может работать, если вы отключите парсер HTML5. Основное использование парсера HTML5 в dompdf - исправление синтаксических ошибок. Множественные элементы BODY не разрешены, и поэтому после прохождения через парсер HTML5 несколько элементов тела будут объединены в один элемент.

Смежные вопросы