为使用wkhtmltopdf打印的页面添加边框

时间:2014-08-26 03:26:52

标签: html css printing wkhtmltopdf

与此问题类似:Add borders to each printed page with CSS?如何在使用wkhtmltopdf呈现的多页pdf的每个页面上打印方形边框?

我创建一个html页面作为变量,并使用snappy:https://github.com/KnpLabs/snappy将其呈现为pdf。

$html = $this->load->view('print/report_baseline_print',$data,TRUE);

    $snappy = new \Knp\Snappy\Pdf('path to wkhtmltopdf -O landscape');

    $tmp = random_temp_file('.pdf');
    $snappy->generateFromHtml($html,$tmp);
    $filename = 'Baseline-report.pdf';
    $this->output
            ->set_header("Cache-Control: no-cache, must-revalidate")
            ->set_header("Content-Disposition: filename=$filename;")
            ->set_content_type('application/pdf')
            ->set_output(read_file($tmp));
    delete_file($tmp);

我尝试过一些事情,比如:

   ....
 <style>
    section:not(:last-child){
            page-break-after: always;
        }
    .box{
        border:1px solid black;
        position:fixed;
        top:10mm;
        right:10mm;
        bottom:10mm;
        left:10mm;
    }
</style>
</head>
<body>
   <section id='page1'>
     <div class='box'></div>
   </section>
   <section id='page1'>
     <div class='box'></div>
 ...

但是框打破了页面。 所以任何想法如何在10毫米边缘的每页打印薄黑边框? wkhtmltopdf程序似乎没有正确处理通常的打印css ....

1 个答案:

答案 0 :(得分:0)

我快到了。

只需要添加/更改

.box{
   border:1pt solid black;
   position:absolute;
   width:28.2cm;
   height:19.3cm;
} 

section{
   position:relative;
}

<style>代码

中的css样式