如果有人可以说出是这个错误还是我错过了一些事情。
在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()出现异常(与页面大小无关)。 预先感谢
答案 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
,请使用上面类似的内容进行检查。