在第一个文本下方绘制第二个文本
Drawing a second text below the first text
我想在我的 PDF 上绘制 2 个文本。
第一个文本应与左上角对齐。
这很好用。
我正在使用:
canvas = stamper.GetOverContent(i)
watermarkFont = iTextSharp.text.pdf.BaseFont.CreateFont(iTextSharp.text.pdf.BaseFont.HELVETICA, iTextSharp.text.pdf.BaseFont.CP1252, iTextSharp.text.pdf.BaseFont.NOT_EMBEDDED)
watermarkFontColor = iTextSharp.text.BaseColor.RED
canvas.MoveTo(0, 0) 'I think the canvas is the space that we draw onto. My documents always start at position X=0 and Y=0, so move to 0,0 should be fine
canvas.BeginText()
canvas.SetFontAndSize(watermarkFont, 12)
canvas.SetColorFill(watermarkFontColor)
canvas.ShowTextAligned(Element.ALIGN_TOP, uText, 0, 830, 0) 'is 830 the width of the available space?
canvas.EndText()
现在我想在第一个文本下方大约 100 像素处绘制另一个文本。
我正在使用:
canvas.MoveTo(0, 100) 'let's draw the second text at X=100, Y=100
canvas.BeginText()
canvas.SetFontAndSize(watermarkFont, 12)
canvas.SetColorFill(watermarkFontColor)
canvas.ShowTextAligned(Element.ALIGN_CENTER, uBewirtung, 0, 830, 0)
canvas.EndText()
然而,第二个文本根本没有出现。
我怀疑我在文档之外绘图,但我没有看到我的错误。
MoveTo()
方法用于绘制路径(图形状态下的线条和形状),而不是文本(文本状态下)。它向内容流添加一个 m
运算符。如果您是 PDF 专家,您应该使用 SetTextMatrix()
方法 inside 您的 BT
/ET
文本块:What does setTextMatrix of contentByte class in iText do?
注意if;这很重要。如果您不是 PDF 专家,则不应随意使用这些方法。您应该使用 ColumnText.ShowTextAligned()
而不是 BeginText()
、EndText()
以及您在中间添加的所有行。这些方法适用于讲 PDF 语法的人。
我想在我的 PDF 上绘制 2 个文本。 第一个文本应与左上角对齐。 这很好用。
我正在使用:
canvas = stamper.GetOverContent(i)
watermarkFont = iTextSharp.text.pdf.BaseFont.CreateFont(iTextSharp.text.pdf.BaseFont.HELVETICA, iTextSharp.text.pdf.BaseFont.CP1252, iTextSharp.text.pdf.BaseFont.NOT_EMBEDDED)
watermarkFontColor = iTextSharp.text.BaseColor.RED
canvas.MoveTo(0, 0) 'I think the canvas is the space that we draw onto. My documents always start at position X=0 and Y=0, so move to 0,0 should be fine
canvas.BeginText()
canvas.SetFontAndSize(watermarkFont, 12)
canvas.SetColorFill(watermarkFontColor)
canvas.ShowTextAligned(Element.ALIGN_TOP, uText, 0, 830, 0) 'is 830 the width of the available space?
canvas.EndText()
现在我想在第一个文本下方大约 100 像素处绘制另一个文本。
我正在使用:
canvas.MoveTo(0, 100) 'let's draw the second text at X=100, Y=100
canvas.BeginText()
canvas.SetFontAndSize(watermarkFont, 12)
canvas.SetColorFill(watermarkFontColor)
canvas.ShowTextAligned(Element.ALIGN_CENTER, uBewirtung, 0, 830, 0)
canvas.EndText()
然而,第二个文本根本没有出现。 我怀疑我在文档之外绘图,但我没有看到我的错误。
MoveTo()
方法用于绘制路径(图形状态下的线条和形状),而不是文本(文本状态下)。它向内容流添加一个 m
运算符。如果您是 PDF 专家,您应该使用 SetTextMatrix()
方法 inside 您的 BT
/ET
文本块:What does setTextMatrix of contentByte class in iText do?
注意if;这很重要。如果您不是 PDF 专家,则不应随意使用这些方法。您应该使用 ColumnText.ShowTextAligned()
而不是 BeginText()
、EndText()
以及您在中间添加的所有行。这些方法适用于讲 PDF 语法的人。