dompdf HTML to PDF - can't set margin of page

56,452

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;
        }
Share:
56,452
Nereo Costacurta
Author by

Nereo Costacurta

I just love do less, and get more. Wait: do really less, get very very more.

Updated on July 09, 2022

Comments

  • Nereo Costacurta
    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; }