dompdf HTML to PDF - can't set margin of page
Solution 1
I figured out that neither body or @page works in this version of dompdf.
the problem was in the main CSS, where I put every tyme this line:
*{margin:0;padding:0}
I find out that margins of the PDF are decided in base of the margin of the HTML, so I removed that line with the global selector and replaced with:
th,td,p,div,b ... {margin:0;padding:0}
html{margin:40px 50px}
This works as "un-expected" and I get the right margin in every page.
NOW I'M HAPPY. I really don't know who down-vote my question, I think it's very important! In fact everywhere in internet there's the wrong answer (using body or @page margin).
solution: use in CSS html{margin:...}
Solution 2
This fixed my problem:
@page {
margin: 0px 0px 0px 0px !important;
padding: 0px 0px 0px 0px !important;
}
Nereo Costacurta
I just love do less, and get more. Wait: do really less, get very very more.
Updated on July 09, 2022Comments
-
Nereo Costacurta almost 2 years
version: 0.6.0 beta 3
I tryed in every manner to make dompdf set the margin of the page. I have a long page with a lot of text, divided in chapters...
my css is something like:
#wrapper{ padding:8px; } /* other styles... */ @page{margin: 0.2in 0.5in 0.2in 0.5in;}
when the php is
<?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)); ?>
but what I get is a page with NO margins!!! only the padding of the #wrapper are applied... and they are applyed only at the beginning and at the end of the entire PDF...
I'm doing something wrong?
PS - it seems that only the bottom-margin is applied... but I'm not sure...
PPS - I tryed with no success also this css: body { margin-top: 40px; } html { margin-top: 40px; } @page { margin-top: 40px; }