mpdf 裁切标记和出血边距

mpdf cropmarks and bleed margins

我今天才开始研究 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" );

在 mPDF 中启用裁剪标记和控制文档出血的最简单方法是通过 CSS parameter @page. mPDF supports the marks and size CSS properties,这将使您可以轻松启用裁剪标记和控制出血。

以下示例代码将在文档周围添加 3 毫米出血:

$mpdf = new \Mpdf\Mpdf([
    'mode' => 'utf-8',
    'format' => 'A4',
    'orientation' => 'P',
    'img_dpi' => 300,
]);

$mpdf->SetDisplayMode('fullpage');

$mpdf->WriteHTML('
<style>
    @page {
        size: 204mm 291mm;
        marks: crop;
    }
</style>

Content
');

$mpdf->Output();

如果要添加更大的出血,请减少 size 参数中的值。此外,在 @page 中添加 margin 属性 以控制打印区域周围的边距。

对于其他 运行 参与其中的人 - 请记住,裁剪 marks/bleed 需要采用印刷公司将使用的页面尺寸。因此,如果您尝试打印 A4 pdf(210mm x 297mm),Jake 的答案中显示的尺寸属性需要为 210 x 297,并且需要增加实际文档尺寸。通常的标准是在文档的所有边上添加大约 5 毫米 space,这意味着您的文档应该高 10 毫米,宽 10 毫米。

举个例子:

<?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