2010-04-15 17 views
3

具體的邊界我剛開始使用TCPDF(用HTML輸出),我不明白爲什麼我不能有像下面的邊界內聯CSS樣式,TCPDF對於不同的側面

style="border-right: 1px" 

細算一些例子,我看到使用border的唯一地方就是使用border =「1」屬性的表格。這非常令人沮喪,我希望有一種方法可以使用所有內聯CSS而不是像「border」這樣的舊HTML屬性。

感謝您的幫助,新都

回答

6

從版本5.7 TCPDF(http://www.tcpdf.org)包括完全支持CSS邊框,所以你只需要更新。無論如何,不​​要忘了正確設置邊框。

例如:

border-right: 1px solid black; 
+1

遺憾的是它並沒有在TR標籤的工作。 – emfi 2016-01-16 17:34:49

0

不幸的是,TCPDF不suppport的FULL CSS希望有一個人得到了快速的魔法來解決這個或開發者本身,使其在未來的版本兼容。

3

這個答案已經過時爲TCPDF的當前版本似乎有CSS定義的邊界建立支持。只有這個,如果你還在使用舊TCPDF和傾斜開關一起使用。

我也在最近的項目中使用writeHtml函數,發現在計算位置繪製線條對我來說並不是真正的選擇。所以我創建了一個小黑客來啓用1px黑色邊框來轉換div標籤。

需要進行兩處更改TCPDF類(或YOUT自己的PDF類從TCPDF繼承覆蓋的WriteHTML功能):

所以只要看看以下:

if (isset($dom[$key]['content'])) { 
    $cell_content = $dom[$key]['content']; 
} else { 
    $cell_content = ' '; 
} 

後,其中包括:

if (isset($dom[$key]['attribute']['border'])) { 
    $cell_borderHack = $dom[$key]['attribute']['border']; 
} elseif (isset($dom[$trid]['attribute']['border'])) { 
    $cell_borderHack = $dom[$trid]['attribute']['border']; 
} else { 
    $cell_borderHack = false; 
} 

,然後發現:

$this->MultiCell($cellw, $cellh, $cell_content, false, $lalign, false, 2, '', '', true, 0, true); 

,取而代之的是:

$this->MultiCell($cellw, $cellh, $cell_content, $cell_borderHack, $lalign, false, 2, '', '', true, 0, true); 

在您剛通過把「TRBL」的組合到HTML標籤的邊界屬性來完成這些變化有可能定義左上角rigt底部邊框 。例如: 例如: - >將呈現頂部和左邊界1px純黑色表格單元格。

我知道這遠不是有效的HTML:J,但它爲我節省了很多時間和麻煩。

還應該提到的是,由於缺少utf-8支持,有一個非常好的理由不去考慮dompdf,它會讓你陷入更大的麻煩,特別是如果你從我假設的多語言數據庫中生成Pdf。

Tcpdf是我知道的處理utf-8時沒有任何問題的唯一php庫(請糾正我,如果我在這種情況下是錯誤的)。

2

TCPDF 5.9.010(2010-10-27) - 加入支持CSS屬性 '邊界間距' 和表 '填充'。 當我寫這篇文章的最新版本:TCPDF 5.9.034(2010-12-19)

1

這種奇怪,但你可以使用Line方法自己畫邊界。

$style = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)); 
$this->Line(x1, y1, x2, y2, $style);