2013-07-04 116 views
0

我使用iTextSharp(在SharePoint上,但我希望這沒關係)將HTML文檔轉換爲PDF。到目前爲止,我無法獲得元素周圍的任何邊界。我該怎麼做呢?這不支持?itextsharp html to pdf創建無邊框

事情我想:

// in c# code 
StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet(); 
styles.LoadStyle("borderCls", "border-style", "solid"); // <td class="borderCls"> 
styles.LoadStyle("borderCls", "border-width", "1px"); 
styles.LoadStyle("borderCls", "border-color", "#000"); 
    // 
styles.LoadStyle("borderCls", "border", "solid 1px #000"); 

    // in html 
<td style="border:solid 1px #000"> 
    // 
<td border="1"> 
    // 
<td style="border-style:solid;border-width:1px"> 

但這些沒有工作。我無法讓iTextSharp創建任何邊界。

更新:也有可能只是在一個特定的一面定義邊界?

回答

4

使用此代碼。

<table border="1"> 

確定它的工作。 但固體和px不工作在HTML到PDF。

+1

謝謝,這個最後給了我一個邊框。但是不可能只在特定的一面定義邊界?我希望不是整個桌子,每個細胞都有邊框。 – Kirschi

+0

如果你想爲特定的單元格設置邊界,請使用pdfpcell和html在Ielement中進行轉換。 –

+0

但是不可能爲div使用'border-bottom:1px'之類的東西嗎?我最初並不想使用表格...... – Kirschi

1

你可以用表格的邊框玩,有一些例子在這裏:http://demo.itextsupport.com/xmlworker/

XMLWorker CSS和HTMLsupport文檔http://demo.itextsupport.com/xmlworker/itextdoc/index.html

如果你想只用css來設定只有左邊框的表格,使用代碼如下:

td.black-left-border { 
    border: 0; /*First set all the borders to 0, then set the desired borders width*/ 
    border-color: black; 
    border-left-width: 1px; /*PDF*/ 
    border-left-style: solid; 
} 

您還可以設置邊框不同的顏色:

td.black-left-border-blue-bottom-border { 
    border: 0;  
    border-left-color: black; 
    border-bottom-color: blue; 
    border-left-width: 1px; 
    border-bottom-width: 1px; 
    border-left-style: solid; 
    border-bottom-style: solid; 
} 

也許瀏覽器不會應用這些樣式,但iTextSharp會。正如你所看到的,你必須在CSS屬性中非常具體。