我正在使用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
但它没有用。
感谢任何帮助。
提前致谢
答案 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只会翻转宽度/高度。