'setIndentationLeft' 不是 'iTextsharp.text.Paragraph' 的成员

'setIndentationLeft' is not a member of 'iTextsharp.text.Paragraph'

我正在添加出现错误的段落

p.setindentationLeft is not a member of itextsharp.text.paragraph.

 Dim bf As BaseFont = BaseFont.CreateFont()
 Dim p As New Paragraph(Label + CONTENT, New Font(bf, 12))
 Dim indentation As Single = bf.GetWidthPoint(Label, 12)
 p.setIndentationLeft(indentation)
 p.setFirstLineIndent(-indentation)
 Document.Add(p)
 Document.Add(Chunk.NEWLINE)  

您正在 iTextSharp 应用程序中使用 iText 代码。您需要使用此答案中解释的规则将 iText 代码转换为 iTextSharp 代码:.

如有疑问,请注意 iTextSharp 是一个开源库。您可以随时查阅源代码。在您的情况下,您可以检查文件 Paragraph.cs on Github.

您会注意到 Java 方法 setIndentationLeft() 实际上是这样实现的:

/// <summary>
/// Get/set the indentation of this paragraph on the left side.
/// </summary>
/// <value>a float</value>
virtual public float IndentationLeft {
    get {
        return indentationLeft;
    }
    set {
        this.indentationLeft = value;
    }
}

这意味着您的代码中需要这个:

p.IndentationLeft = indentation

setFirstLineIndent()方法也是如此:

p.FirstLineIndent = -indentation

如前所述,您应该将 Java 示例视为 伪代码 ,并且每当您点击 问题,您应该应用以下规则之一来解决问题:

  • Java中的方法以小写开头; .NET 中的方法以大写开头,因此当人们要求您使用 Java 代码作为伪代码并将 Java 转换为 .NET 时,您需要更改方法,例如 add()addCell() 变成 Add()AddCell().
  • Java 中的成员变量已使用 getter 和 setter 进行更改和查询; .NET 中的变量使用看起来像属性的方法进行更改和查询。这意味着您需要将 cell.setBorder(border);border = cell.getBorder(); 等行更改为 cell.Border = borderborder = cell.Border.

这是对您之前的一个问题的回答的复制粘贴。如您所见,这个答案也解决了您当前的问题。