itextsharp在块图像上方添加文本

时间:2016-02-28 13:22:59

标签: vb.net pdf-generation itextsharp

我想在我的图片上方获得一些文字。我的代码是这样的:

 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)  

我总是在我的形象下面得到我的地址和公司名称 我想在我的形象之上做出这一点 我能为此做些什么?任何帮助都非常明显。

1 个答案:

答案 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 cellsHow 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?几乎完全相同(仅一个月前)。