iTextSharp SetPageSize始终返回true

时间:2018-08-23 12:30:13

标签: powershell itext

如果有人可以说出是这个错误还是我错过了一些事情。

在PowerShell中使用以下代码:

$pdf = New-Object iTextSharp.text.Document
$pdf.SetPageSize([iTextSharp.text.PageSize]::A4)

返回True,可以。

这是故意的错误,用于调试目的:

$pdf = New-Object iTextSharp.text.Document
$pdf.SetPageSize([iTextSharp.text.PageSize]::DD)

返回True,这是不正确的。而且也不创建任何异常。

在第二个示例中,未创建PDF,因为下一个函数$ pdf.Open()出现异常(与页面大小无关)。 预先感谢

1 个答案:

答案 0 :(得分:1)

这是一个两部分的问题:

1)iTextSharp.text.Document source code确认SetPageSize() 总是返回true。只有开发人员才能回答这是预期的行为还是错误。供参考,以下是定义:

public virtual bool SetPageSize(Rectangle pageSize)
{
  this.pageSize = pageSize;
  foreach (IDocListener listener in this.listeners)
    listener.SetPageSize(pageSize);
  return true;
}

2)PowerShell与.NET不同,将愉快地使用无效的enum名称。在您的示例中:

$pageSize = [iTextSharp.text.PageSize]::DD; # $pageSize -eq $null ($true; no Exception / error)

换句话说,如果您需要在PowerShell中确认有效的PageSize ,请使用上面类似的内容进行检查。