如何使用DOMPDF和Laravel将pdf精确设置为10CM宽度?

Rub*_*092 2 php pdf dompdf laravel

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

将使用特殊的打印机打印pdf,该打印机仅接受宽度为10CM和高度为20CM的文件。

我已经试过了:

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

由于11X17是

"11x17" => array(0, 0, 792.00, 1224.00),
Run Code Online (Sandbox Code Playgroud)

我认为10X20为0,0720,1440

但这不起作用。

任何帮助表示赞赏。

提前致谢

Bri*_*anS 9

在 PHP 中设置纸张大小需要知道点 (pt) 度量,点是原生 PDF 单位。PDF 分辨率(使用 Dompdf)为 72pt/inch。所以 10cm x 20cm 大致相当于 283 X 566(如您在回答中所述)。

1 inch = 72 point
1 inch = 2.54 cm
10 cm = 10/2.54*72 = 283.464566929
20 cm = 10/2.54*72 = 566.929133858
Run Code Online (Sandbox Code Playgroud)

landscape是意思相反。因此,我们可以将其设置为:array(0, 0, 566.929133858, 283.464566929 )与答案相同但更精确的值

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

<html>
<head>
  <style>
    @page { size: 10cm 20cm landscape; }
  </style>
</head>
<body>
  ...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

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


Rub*_*092 5

我如何解决这个问题:

更改自定义纸张。

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

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

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

非常circuit回的工作,但我确实完成了工作。

谢谢