dompdf HTML到PDF - 无法设置页面边距

Ner*_*rta 18 html css php margin dompdf

版本:0.6.0 beta 3

我试着以各种方式让dompdf设置页面的边距.我有一个很长的页面,有很多文字,分为章节......

我的css是这样的:

#wrapper{
    padding:8px;
}

/* other styles... */

@page{margin: 0.2in 0.5in 0.2in 0.5in;}
Run Code Online (Sandbox Code Playgroud)

当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));

?>
Run Code Online (Sandbox Code Playgroud)

但我得到的是一个没有利润的页面!只应用#wrapper的填充...并且它们仅在整个PDF的开头和结尾应用...

我做错了什么?

PS - 似乎只应用了底部保证金...但我不确定......

PPS - 我试过这个css:body {margin-top:40px; } html {margin-top:40px; } @page {margin-top:40px; }

Ner*_*rta 41

我发现在这个版本的dompdf中,body或@page都不起作用.

问题出在主要的CSS中,我把这个行放在每一个:

*{margin:0;padding:0}
Run Code Online (Sandbox Code Playgroud)

我发现PDF的边距是根据HTML的边距决定的,所以我用全局选择器删除了该行并替换为:

th,td,p,div,b ... {margin:0;padding:0}
html{margin:40px 50px}
Run Code Online (Sandbox Code Playgroud)

这是"不期望的",我在每一页都得到了正确的余量.

现在我很开心.我真的不知道是谁投票我的问题,我认为这非常重要!事实上,互联网上的每个地方都有错误的答案(使用正文或@page边距).

解决方案:在CSS html {margin:...}中使用

  • 使用`*`并尝试设置页边距似乎存在问题.我们需要调查一下.您仍然可以使用`*`选择器,只需通过附加`!important`来强制页边距,例如`@page {margin:40px 50px!important; }`. (2认同)

小智 5

这解决了我的问题:

        @page {
            margin: 0px 0px 0px 0px !important;
            padding: 0px 0px 0px 0px !important;
        }
Run Code Online (Sandbox Code Playgroud)