2014-07-09 69 views
0

我嘗試使用iTextSharp的轉換HTML頁面轉換成PDF文件,但我有在圖像負載使用iTextSharp的

例如分配CSS樣式的問題一個div內的圖像風格:

<body> 
... 
<div class='ticketFont2'><img src='example.png' /></div> 
... 
</div> 

我試圖做到這一點

styles.LoadTagStyle("img ticketFont2", "width", "30px"); 

什麼我也確實可以在CSS .ticketFont2 img { width:30px } 這樣寫的,但沒有奏效。 我在這裏錯過了什麼?

回答

1

LoadTagStyleHTMLWorker的一部分,儘管類似他們應該出現的類,但它並不真正支持CSS。您可以使用基本的HTML屬性以及基於類的定位,這就是它。這就是爲什麼HTMLWorker已被棄用贊成XMLWorker,並鼓勵您切換到。

隨着HTMLWorker你可以做非常簡單的和廣泛的HTML標籤類似這樣的定位:

//Set all IMG tags to be 100 pixels wide 
styles.LoadTagStyle(iTextSharp.text.html.HtmlTags.IMG, iTextSharp.text.html.HtmlTags.WIDTH, "100px"); 

你也可以做基於類的目標,但你只能定位到類屬性的全部內容。

//Change the width of all elements that have the exact (not contains) class of myimage 
var html = "<img class='myimage' src='...' />"; 
styles.LoadStyle("myimage", iTextSharp.text.html.HtmlTags.WIDTH, "100px"); 

不會工作:

var html = "<img class='myimage tickets' src='...' />"; 
styles.LoadStyle("myimage", iTextSharp.text.html.HtmlTags.WIDTH, "100px"); 

當使用LoadTagStyleLoadStyle,如果你不能找到iTextSharp.text.html.HtmlTags的HTML標籤或屬性,那麼iTextSharp的是沒有意識到這一點,並贏得了沒有工作。此外,請確保您的HTML中沒有任何<hr/>標記,HTMLWorker也不喜歡這些標記。如果你可以忍受這些限制,那麼HTMLWorker可能適合你,但它不再被維護,已經超過5年。就像我剛纔說的,你應該看看XMLWorker

+0

謝謝你的精彩回覆Chris。讚賞你的幫助^ - ^ – Sora