2016-10-10 105 views
3

我有一個帶有表格的PDF文檔。代碼如下:使用iText在單元格中圍繞圖像文本7

PdfWriter _writer = new PdfWriter(@"C:\output.pdf"); 
PdfDocument _document = new PdfDocument(_writer); 
Document MyDocument = new Document(_document, PageSize.A4); 

Table MyTable = new Table(new float[] { 1, 4 }); 
MyTable.SetWidthPercent(100); 
MyTable.AddHeaderCell(new Cell().Add(new Paragraph("ID"))); 
MyTable.AddHeaderCell(new Cell().Add(new Paragraph("Description"))); 

MyTable.AddCell(new Cell().Add(new Paragraph("1"))); 
Cell descCell = new Cell(); 
descCell.Add(IMG); // iText.Layout.Element.Image 
descCell.Add(new Paragraph("This is the description.")); 
MyTable.AddCell(descCell); 

MyDocument.Add(MyTable); 
MyDocument.Close(); 

其實輸出是這樣的:

enter image description here

我想實現的是:

enter image description here

我已經閱讀了幾次考試爲iText 5和所有指向使用此屬性:

image.setAlignment(Image.LEFT | Image.TEXTWRAP);

的問題是,它似乎並沒有被avaliable關於iText的7

任何幫助,將不勝感激。

+0

iText7目前不支持浮動圖像,但這是路線圖。 –

回答

2

浮動元素功能已在7.0.3-SNAPSHOT中執行,並且可能會使其進入7.0.3版本。

爲了使文本環繞單元格中的圖像,您需要指定圖像是浮動元素,就像在HTML中一樣。要做到這一點,使用

Image img = ... 
img.setProperty(Property.FLOAT, FloatPropertyValue.LEFT); 

然後,構建一個細胞像往常一樣,通過添加圖像和文本到它:

table.addCell(new Cell().add(img).add(textStr); 

輸出結果如下所示:

enter image description here