我创建了一个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)
答案 0 :(得分:1)
如果您重新打开表格边框,您会看到表格单元格在表格允许的最左侧:
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
有关。升级代码不应该太痛苦,因为它们具有大多数类似的方法和属性。