mpdf裁剪标记和出血边距

时间:2018-05-07 18:09:33

标签: mpdf

我今天才开始关注mPDF(所以我也是新人)。关于如何让裁剪标记和流血边缘有效,我有点坚持。我无法在输出PDF上看到它们。通常当我为打印机制作文件时(即不是实际的打印机,而是打印店),我必须包括出血和裁剪标记,因为封面图像需要它。 这就是我现在所拥有的

require_once __DIR__ . '/../../vendor/autoload.php';
$pdfOptions = array(
    'mode'                  => 'utf-8', 
    'format'                => 'A4', 
    'orientation'           => 'P',
    'printers_info'         => true,
    'mirrorMargins'         => true,
    'bleedMargin'           => 3,
$pdf = new \Mpdf\Mpdf( $pdfOptions );
$styles = file_get_contents( __DIR__ . '/css/print.css');
$content = '<div>Some content</div>';
$pdf->SetDisplayMode( 'fullpage','continuous' );
$pdf->img_dpi = 300;
$pdf->WriteHTML( $styles, 1 );
$pdf->WriteHTML( $content, 2 );
$pdf->Output( 'test.pdf', "I" );

1 个答案:

答案 0 :(得分:0)

对于遇到此问题的其他任何人-请记住,裁切痕/渗色必须与印刷公司将使用的页面尺寸相同。因此,如果您尝试打印A4 pdf(210mm x 297mm),则杰克答案中显示的size属性将需要为210 x 297,并且实际文档大小将需要增加。通常的标准是在文档的所有侧面增加大约5mm的空间,这意味着文档应该高10mm,宽10mm。

例如:

<?php
function generate_pdf($content, $pdf_width, $pdf_height, $bleed = false) {
    $bleed_size = 10; //5mm either side of the doc
    $width      = ($bleed ? $pdf_width + $bleed_size : $pdf_width); //if bleed - increase by 10mm
    $height     = ($bleed ? $pdf_height + $bleed_size : $pdf_height); //if bleed - increase by 10mm
    
    $mpdf       = new \Mpdf\Mpdf([
        'mode'          => 'utf-8',
        'format'        => [$width, $height],
        'img_dpi'       => 300,

    ]);

    $mpdf->SetDisplayMode('fullpage');

    if($bleed) {
        $content = add_bleed($content, $pdf_width, $pdf_height);
    }

    $mpdf->WriteHTML($content);
    $mpdf->Output();
}


function add_bleed($content, $width, $height) {
    $bleed = '
<style>
    @page {
        size: '.$width.'mm '.$height.'mm;
        marks: crop;
        margin: 0;
    }
</style>
';
    return $bleed.$content;
}

保存上述功能后,您可以简单地使用以下功能来生成带有裁切标记的pdf。

<?php
generate_pdf('<h1>test</h1>', 210, 297, $bleed); //a4 == 210x297