如何在itextsharp中使用PdfContentByte为文本加下划线

Del*_*019 5 itextsharp

这实际上是对实际结束的问题的引用

我使用ItextSharp 5.2.1.

我想使用PdfContentByte使我的标题文本加下划线.请给我解决方案.

Del*_*019 6

private PdfContentByte pdfContentByte;



 private string DescriptionToPrint="Hii!! I will be underlined."
  private Int32  AlignmentofDescription = 3;
  private float  XofDescription = 110;
  private float  YofDescription = 440;
  private float  RotationofDescription = 0; 
Run Code Online (Sandbox Code Playgroud)

要使用pdfcontentbyte编写PDF,我们通常使用以下内容

(开始文字和结束文字)

格式

pdfContentByte.BeginText();
    pdfContentByte.ShowTextAligned(PdfContentByte.ALIGN_LEFT, DescriptionToPrint.ToString(), XofDescription, YofDescription, RotationofDescription);
    pdfContentByte.EndText();
Run Code Online (Sandbox Code Playgroud)

上述技术还有一种替代方案,它也很安静.

如果您想要使用相同的格式,则可以pdfcontentbyte使用此选项BaseFont

//ColumnText.ShowTextAligned(pdfContentByte, Element.ALIGN_LEFT, new Phrase(DescriptionToPrint), XofDescription, YofDescription, RotationofDescription);
Run Code Online (Sandbox Code Playgroud)

如果你想强调的文本,那里面Phrase的地方Chunk

  ColumnText.ShowTextAligned(pdfContentByte, Element.ALIGN_LEFT, new Phrase(new Chunk(DescriptionToPrint.ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.UNDERLINE))), XofDescription, YofDescription, RotationofDescription);
Run Code Online (Sandbox Code Playgroud)

这里提到的线实际上是修复.

new Phrase(new Chunk(DescriptionToPrint.ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.UNDERLINE)))
Run Code Online (Sandbox Code Playgroud)

对于ColumnText,我们必须提供使用的文本new Phrase ,我们可以在其中访问实际上base font不允许我们访问的字体属性.

内部Phrase Chunk为文本提供所需的格式.

他们在网上有很多关于使用的例子 chunk

如果你想传递像这样的浮点值(20.25),这个类将被识别为double,使用"20.25f",那么它们将被视为浮点数并将起作用......