2016-11-28 185 views
2

我創造與DOMPDF和laravel一個PDF。如何使用DOMPDF和Laravel將pdf精確到10CM寬度?

將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

我是如何解決這個問題的:

更改自定義紙張。

下載打開PDF在Acrobat Reader將鼠標移動到左上角,現在你可以看到文檔的寬度和高度,我適時改變自定義紙張。

最終的結果是: 10CM X 20CM =

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

非常迂迴的工作,但我沒有完成任務..

感謝

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

+0

您好,感謝您的幫助。但是這不能解決問題。我嘗試了所有的Oriant ... – Rubberduck1337106092

0

設置PHP中的紙張尺寸需要知道點(點)測量,點是本機PDF單位。 PDF解析度(與Dompdf)是72pt/inch。因此10cm x 20cm大致相當於283 x 566(如您在your answer中註明的)。

你可以,但是,允許DOMPDF在CSS中指定的頁面尺寸計算合適的點大小。這是從Dompdf 0.6.2開始的。

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

花絮:在PDF規範沒有提供顯示紙張方向的方法(雖然有指示旋轉的方法)。當指定橫向時,Dompdf只是翻轉寬度/高度。