2013-07-04 4 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"> 

уверенный в своих волнениях. , но solid и px не работают в html в pdf.

+1

Спасибо, этот, наконец, дает мне границу. Но невозможно определить границу на одной конкретной стороне? Я бы хотел, чтобы не вся таблица и каждая ячейка имели границу. – Kirschi

+0

, если вы хотите границу для perticular cell, поэтому используйте pdfpcell и html convert в Ielement. –

+0

Но нельзя использовать что-то вроде 'border-bottom: 1px' для div? Сначала я не хотел использовать таблицы ... – 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.

Смежные вопросы