【问题标题】:itextsharp add text above of chunk imageitextsharp 在块图像上方添加文本
【发布时间】:2016-02-28 13:22:58
【问题描述】:

我想在图片上方添​​加一些文字。我的代码是这样的:

 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)  

我总是在我的图片下方显示我的地址和公司名称。
我想在我的图像上方制作它
我能为此做些什么?任何帮助都是非常可观的。

【问题讨论】:

  • 您使用的是哪个版本的 iTextSharp?你为什么使用Phrase?为什么要在创建PdfPCell之后将内容添加到Phrase?这一切都非常非常奇怪……就好像你从未读过official documentation
  • 我正在使用 Itextsharp 版本 5.5.8.0。实际上,先生,我从谷歌搜索中获得了此代码,然后我尝试打印条形码,条形码正在打印。但我想在上面的条形码中添加一些文本,即s 我正在尝试做的事情..但没有工作
  • 优秀的编码人员从文档中学习如何编码。其他编码人员使用 Google 搜索来查找他们可以复制/粘贴的代码。请看看我的回答,你就会明白你搜索得不够好。 2016 年 1 月 26 日回答了与您现在发布的完全相同的问题。

标签: vb.net pdf-generation itextsharp


【解决方案1】:

您在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? 几乎完全相同。

【讨论】:

  • 我无法重现该问题。见How to put text above a bar code instead of under the bars?条码显示正确没有任何问题。
  • @Bruno 你似乎在你的答案中混入了一些 c#...也许整理一下?
  • @Bruno New 关键字应该大写,是的,VB 是一门真正的语言,可以满足 C# 的所有功能,而无需使用大部分标点符号。 SO 不是语言狂热的地方。
  • @MrGadget 好的,现在我删除了; 并将New 设为大写。还有其他我应该注意的 vb.net 特定的事情吗?
猜你喜欢
  • 1970-01-01
  • 2015-08-13
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多