2012-02-03 90 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