1

我创建了一个 PDF,但图像出现在页面的中间,我无法弄清楚如何将图像和文本单元格对齐到页面的左侧。

这是我的代码

PdfWriter.GetInstance(mydoc, New FileStream(filename, FileMode.Create))

mydoc.Open()

Dim titleTable As New Table(2, 1)
titleTable.Border = 0
titleTable.BorderWidth = 0
titleTable.Cellpadding = 3
titleTable.SetWidths({20, 80})
titleTable.DefaultCellBorder = iTextSharp.text.Rectangle.NO_BORDER
titleTable.TableFitsPage = True

Dim myCell As Cell

'add impero logo 
Dim imperoImage As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(GetBytesForImage(<my image>))
imperoImage.ScalePercent(15)
myCell = New iTextSharp.text.Cell(imperoImage)
myCell.SetHorizontalAlignment(Cell.ALIGN_LEFT)
titleTable.AddCell(myCell)

'title
Dim myChunk As New iTextSharp.text.Chunk(ImperoClientApp.LanguageResources.GetPhrase("some text", Nothing), _
    iTextSharp.text.FontFactory.GetFont(iTextSharp.text.FontFactory.HELVETICA, 16, iTextSharp.text.Font.BOLD, New iTextSharp.text.Color(0, 0, 0)))
myCell = New iTextSharp.text.Cell(myChunk)
myCell.VerticalAlignment = iTextSharp.text.Element.ALIGN_MIDDLE
titleTable.AddCell(myCell)
mydoc.Add(titleTable)
4

1 回答 1

2

如果您重新打开表格边框,您会看到表格单元格在表格允许的最左侧:

titleTable.Border = 1
titleTable.BorderWidth = 1
''//titleTable.DefaultCellBorder = iTextSharp.text.Rectangle.NO_BORDER

在此处输入图像描述

但是您还需要告诉表格尽可能多地占用水平空间:

titleTable.Width = 100

在此处输入图像描述

但是,所有这些仍然与文档的大小有关,包括边距。根据您的操作,您可以在创建文档时完全删除文档的边距:

Dim Doc As New Document(PageSize.LETTER, 0, 0, 0, 0)

在此处输入图像描述

笔记!

非常古老,iTextSharp.text.Table近十年来一直不受支持。相反,我们鼓励您使用iTextSharp.text.pdf.PdfPTable. 几乎所有的文档都将始终与PdfPTable. 升级代码应该不会太痛苦,因为它们大多具有相似的方法和属性。

于 2013-07-12T13:43:55.687 回答