我想在我的图片上方获得一些文字。我的代码是这样的:
Dim pdfcb As PdfContentByte = Writer.DirectContent
Dim code128 As New Barcode128()
code128.Code = partnumber
code128.Extended = False
code128.CodeType = iTextSharp.text.pdf.Barcode.CODE128
code128.AltText = ""
code128.BarHeight = 13
code128.Size = 6
code128.Baseline = 8
code128.TextAlignment = Element.ALIGN_CENTER
Dim image128 As iTextSharp.text.Image = code128.CreateImageWithBarcode(pdfcb, Nothing, Nothing)
Dim phrase As New Phrase()
phrase.Font.Size = 10
Dim cell As New PdfPCell(phrase)
cell.FixedHeight = 68.69F
cell.HorizontalAlignment = Element.ALIGN_CENTER
cell.VerticalAlignment = Element.ALIGN_MIDDLE
cell.Border = iTextSharp.text.Rectangle.NO_BORDER
phrase.Add(New Chunk(Environment.NewLine + "Companyname"))
phrase.Add(New Chunk(Environment.NewLine + "address"))
phrase.Add(New Chunk(image128, 10, 30))
phrase.Add(New Chunk(Environment.NewLine + partnumber))
phrase.Add(New Chunk(Environment.NewLine + "111"))
tbl.AddCell(cell)
我总是在我的形象下面得到我的地址和公司名称 我想在我的形象之上做出这一点 我能为此做些什么?任何帮助都非常明显。
答案 0 :(得分:0)
您在text mode中使用PdfPCell
。如果要添加Image
,则不应该这样做。请改用composite mode中的PdfPCell
:
Dim cell As New PdfPCell(phrase)
cell.FixedHeight = 68.69F
cell.VerticalAlignment = Element.ALIGN_MIDDLE
cell.AddElement(New Paragraph("CompanyName"))
cell.AddElement(New Paragraph("Address"))
cell.AddElement(image128)
cell.AddElement(New Paragraph(partnumber))
cell.AddElement(New Paragraph("11"))
tbl.AddCell(cell)
请注意,我删除了以下行:
cell.HorizontalAlignment = Element.ALIGN_CENTER
在复合模式下,您需要更改要添加的元素的对齐方式。在这种情况下:您需要更改Paragraph
对象的对象(这很容易实现)。请参阅Alignment, indentation, leading and spacing in cells,How to use multiple fonts in a single cell?和How to right-align text in a PdfPCell?
您的问题也与2016年1月26日发布在StackOverflow上的问题How to put text above a bar code instead of under the bars?几乎完全相同(仅一个月前)。