Dompdf HTML в PDF - не может указать маржу страницы
версия: 0.6.0 beta 3
Я старался изо всех сил сделать dompdf заданной границей страницы. У меня длинная страница с большим количеством текста, разделенная на главы...
my css - это что-то вроде:
#wrapper{
padding:8px;
}
/* other styles... */
@page{margin: 0.2in 0.5in 0.2in 0.5in;}
когда php
<?php
ob_start(); // begin collecting output
include 'makemypdf.php'; // this page output the html
$html = ob_get_clean(); // retrieve output from makemypdf.php and stop buffering
require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf", array("Attachment" => false));
?>
но то, что я получаю, является страницей без полей! применяется только дополнение #wrapper... и они применяются только в начале и в конце всего PDF...
Я делаю что-то неправильно?
PS - кажется, что применяется только нижний край... но я не уверен...
PPS - я не пробовал и этот css: body { margin-top: 40px; } html { margin-top: 40px; } @page { margin-top: 40px; }
Ответы
Ответ 1
Я понял, что ни тело, ни @page не работают в этой версии dompdf.
проблема была в основном CSS, где я помещал каждую строку в эту строку:
*{margin:0;padding:0}
Я узнаю, что поля PDF определены в базе поля HTML, поэтому я удалил эту строку с глобальным селектором и заменил на:
th,td,p,div,b ... {margin:0;padding:0}
html{margin:40px 50px}
Это работает как "не ожидаемое", и я получаю правильный запас на каждой странице.
СЕЙЧАС Я СЧАСТЛИВЫЙ. Я действительно не знаю, кто проголосовал за мой вопрос, я думаю, это очень важно! На самом деле везде в Интернете есть неправильный ответ (с использованием рамки body или @page).
решение: используйте в CSS html {margin:...}