24

版本:0.6.0 beta 3

我尝试了各种方式让 dompdf 设置页面的边距。我有一页很长,里面有很多文字,分为几章......

我的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 { 边距顶部:40px; } @page { 边距顶部:40px; }

4

2 回答 2

49

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

问题出在主 CSS 中,我每次都在其中放置这一行:

*{margin:0;padding:0}

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

th,td,p,div,b ... {margin:0;padding:0}
html{margin:40px 50px}

这就像“意外”一样,我在每一页都得到了正确的边距。

现在我很开心。我真的不知道谁否决了我的问题,我认为这非常重要!事实上,互联网上到处都有错误的答案(使用正文或@page 页边距)。

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

于 2013-11-05T09:34:13.690 回答
6

这解决了我的问题:

        @page {
            margin: 0px 0px 0px 0px !important;
            padding: 0px 0px 0px 0px !important;
        }
于 2019-02-13T08:12:08.803 回答