如果有人能看出来是这个虫子还是我错过了什么。
在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()获得异常而创建的(与pagesize无关)。提前感谢
发布于 2018-08-23 08:47:56
这是两个部分的问题:
1) iTextSharp.text.Document
源代码确认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)
换句话说,如果您需要在PageSize
中确认有效的PowerShell,请使用上面的内容进行检查。
https://stackoverflow.com/questions/51985858
复制相似问题