如何使用DOMPDF和Laravel制作pdf精确的10CM宽度?

时间:2016-11-28 11:19:10

标签: php laravel pdf dompdf

我正在使用DOMPDF和laravel创建PDF。

pdf正在使用特殊打印机打印,该打印机只接受宽度为10CM,高度为20CM的文件。

我试过这个:

$customPaper = array(0,0,720,1440);
$pdf = PDF::loadView('pdf.retourlabel',compact('retour','barcode'))->setPaper($customPaper);

自11X17以来

"11x17" => array(0, 0, 792.00, 1224.00),

我认为10X20是0,0720,1440

但它没有用。

感谢任何帮助。

提前致谢

3 个答案:

答案 0 :(得分:3)

我如何解决这个问题:

更改自定义文件。

下载在Acrobat Reader中打开的PDF,将鼠标移动到左下角,现在可以看到文档的宽度和高度,并相应地更改了自定义纸张。

最终结果是: 10CM×20CM =

$customPaper = array(0,0,567.00,283.80);
$pdf = PDF::loadView('pdf.retourlabel', compact('retour','barcode'))->setPaper($customPaper, 'landscape');

非常迂回的工作,但我确实完成了工作......

由于

答案 1 :(得分:0)

我认为问题在于方向,因为setPaper使用'A4'方向作为默认,所以这可能是您的代码无法正常工作的原因。

/**
     * Set the paper size (default A4)
     *
     * @param string $paper
     * @param string $orientation
     * @return $this
     */
    public function setPaper($paper, $orientation = 'portrait'){
        $this->paper = $paper;
        $this->orientation = $orientation;
        $this->dompdf->setPaper($paper, $orientation);
        return $this;
    }

尝试使用:

$customPaper = array(0,0,720,1440);
$pdf = PDF::loadView('pdf.retourlabel',compact('retour','barcode'))->setPaper($customPaper,'portrait');

希望有助于或尝试其他选项,而不是portrait

答案 2 :(得分:0)

在PHP中设置纸张大小需要知道点(pt)测量,点是本机PDF单元。 PDF分辨率(使用Dompdf)为72pt / inch。因此10cm x 20cm大致相当于283 X 566(正如您在your answer中所述)。

但是,您可以通过在CSS中指定页面尺寸来允许Dompdf计算合适的磅值。这可以从Dompdf 0.6.2开始。

<html>
<head>
  <style>
    @page { size: 10cm 20cm landscape; }
  </style>
</head>
<body>
  ...
</body>
</html>

琐事:PDF规范没有提供指示纸张方向的方法(尽管有一种指示旋转的方法)。当指定横向时,Dompdf只会翻转宽度/高度。