2012-02-03 95 views
3

我使用itextsharp將html轉換爲pdf。我必須將文字放在圖像旁邊的圖像旁邊。在html中,我可以將文本放在圖像旁邊,但是在文本文本行在圖像後開始使用itextsharp在圖片html旁邊放置文本

請幫忙。

+0

在HTML解析iTextSharp的支持是非常有限的取決於你怎麼做。如果您提供代碼示例,我們可能會幫助您更多。否則,簡單的解決方案就是使用HTML表格。 – 2012-02-03 14:17:53

回答

9

既然你提到HTML,你明白在線顯示,對不對?通過類推,iTextSharp的默認Image顯示爲。爲了直列Image對象,你需要:

  1. 將圖片添加到Chunk對象(S)
  2. 添加文本Phrase對象(S)
  3. 然後這些對象添加到Paragraph對象

類似這樣的:

Image image = Image.GetInstance(imagePath); 
Paragraph p = new Paragraph(); 
p.Add(new Phrase("Text next to the image ")); 
p.Add(new Chunk(image, 0, 0)); 
p.Add(new Phrase(" and text after the image.")); 
document.Add(p); 

imagePath替換爲您的映像的物理路徑

+0

但我直接從html圖像標記使用 – user634036 2012-02-04 06:27:02

+0

轉換PDF我使用HTmlWorker.ParseToList metod來貼上html 標記。然後如何在代碼背後的邏輯。 – user634036 2012-02-04 06:29:19

+0

使用[XmlWorker](http://demo.itextsupport.com/xmlworker/itextdoc/flatsite.html)。那麼你沒有關於圖像的塊/內聯問題;圖像默認顯示爲**內聯**。但是你必須設置一個'ImageProvider'來解釋:[1]相對圖像URL,[2] iText [Sharp]處理圖像大小的方式。請參閱本**提交開始時鏈接中提供的文檔。 – kuujinbo 2012-02-06 11:54:59

2

您可以嘗試以下代碼示例。

Image jpg = Image.GetInstance(imagepath + "/Sunset.jpg"); 
Paragraph paragraph = new Paragraph(@"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse blandit blandit turpis. Nam in lectus ut dolor consectetuer bibendum. Morbi neque ipsum, laoreet id; dignissim et, viverra id, mauris. Nulla mauris elit, consectetuer sit amet, accumsan eget, congue ac, libero. Vivamus suscipit. Nunc dignissim consectetuer lectus. Fusce elit nisi; commodo non, facilisis quis, hendrerit eu, dolor? Suspendisse eleifend nisi ut magna. Phasellus id lectus! Vivamus laoreet enim et dolor. Integer arcu mauris, ultricies vel, porta quis, venenatis at, libero. Donec nibh est, adipiscing et, ullamcorper vitae, placerat at, diam. Integer ac turpis vel ligula rutrum auctor! Morbi egestas erat sit amet diam. Ut ut ipsum? Aliquam non sem. Nulla risus eros, mollis quis, blandit ut; luctus eget, urna. Vestibulum vestibulum dapibus erat. Proin egestas leo a metus?"); 
paragraph.Alignment = Element.ALIGN_JUSTIFIED; 
jpg.ScaleToFit(250f, 250f); 
jpg.Alignment = Image.TEXTWRAP | Image.ALIGN_RIGHT; 
jpg.IndentationLeft = 9f; 
jpg.SpacingAfter = 9f; 
jpg.BorderWidthTop = 36f; 
jpg.BorderColorTop = Color.WHITE; 
doc.Add(jpg); 
doc.Add(paragraph); 

來源:http://www.mikesdotnetting.com/Article/87/iTextSharp-Working-with-images

通過Mikesdotnetting