Php mpdf cropmarks和出血边缘

Php mpdf cropmarks和出血边缘,php,mpdf,Php,Mpdf,我今天刚开始关注mPDF(所以对我来说也是全新的)。我有点纠结于如何让作物痕迹和出血边缘起作用。我在输出PDF上看不到它们。通常,当我为打印机制作文件时(即不是真正的打印机,而是打印车间),我必须包括出血和裁剪标记,因为封面的图像需要它。 这就是我现在拥有的 require_once __DIR__ . '/../../vendor/autoload.php'; $pdfOptions = array( 'mode' => 'utf-8',

我今天刚开始关注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" );
require\u once\u DIR\u./..//供应商/autoload.php';
$pdfOptions=array(
“模式”=>“utf-8”,
'格式'=>'A4',
“方向”=>“P”,
“打印机信息”=>true,
“mirrorMargins”=>正确,
“bleedMargin”=>3,
$pdf=new\Mpdf\Mpdf($pdfOptions);
$styles=file_get_contents(__DIR_.'./css/print.css');
$content='Some content';
$pdf->SetDisplayMode('fullpage','continuous');
$pdf->img_dpi=300;
$pdf->WriteHTML($style,1);
$pdf->WriteHTML($content,2);
$pdf->Output('test.pdf',I');

在mPDF中启用裁剪标记和控制文档出血的最简单方法是通过。这将使您能够轻松启用裁剪标记和控制出血

以下示例代码将在文档周围添加3mm的引气:

$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();
$mpdf=new\mpdf\mpdf([
“模式”=>“utf-8”,
'格式'=>'A4',
“方向”=>“P”,
“img_dpi”=>300,
]);
$mpdf->SetDisplayMode('fullpage');
$mpdf->WriteHTML($mpdf)
@页面{
尺寸:204mm 291mm;
标记:作物;
}
内容
');
$mpdf->Output();

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

对于遇到此问题的任何其他人,请记住裁剪标记/出血需要与打印公司将使用的页面大小相同。因此,我如果您试图打印A4 pdf(210mm x 297mm),Jake回答中显示的大小属性将需要为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;
}

谢谢你的回复!我已经玩了一段时间这些设置了。仍然在尝试真正处理一切:)但至少现在我知道出血设置不会自动添加所需的空间,而是你必须增加大小(因为我希望最终结果适合A4(210x297))。因此,在我的例子中,我添加了空间使其工作。再次感谢!非常有助于我找到正确的方向;)
<?php
generate_pdf('<h1>test</h1>', 210, 297, $bleed); //a4 == 210x297