我正在尝试根据Powershell脚本从计算机检索到的一些数据创建PDF文件。
我有以下代码
Add-Type -Path \\xxxx\yy\aaaa\bbb\cccc\PdfSharp.dll
$doc = New-Object PdfSharp.Pdf.PdfDocument
$doc.Info.Title = "Created dynamically"
$page = $doc.AddPage()
$gfx = [PdfSharp.Drawing.XGraphics]::FromPdfPage($page)
$pen = New-Object PdfSharp.Drawing.XPen([PdfSharp.Drawing.XColors]::Black, 0.5)
#$gfx.DrawRectangle($pen,left start, top start, width, height)
$gfx.DrawRectangle($pen,80, 16, 119, 17)
将在给定位置的给定尺寸中创建一个矩形。
因为我打算创建许多可能超过60个的矩形,所以我可以想象这会在很多页面上进行,并且我想创建一个函数,该函数将传递一些参数,例如笔颜色,左开始,顶部开始,宽度和高度,它将为我创建矩形。
所以我尝试了下面的功能
function Draw-Rectangle ([PdfSharp.Drawing.XGraphics]$gfx, $pen_color, $left, $top, $width, $height)
{
$pen = New-Object PdfSharp.Drawing.XPen([PdfSharp.Drawing.XColors]::$pen_color, 0.5)
$gfx.DrawRectangle($pen,$left, $top, $width, $height)
}
我正在使用以下代码调用上述函数:
Draw-Rectangle($gfx,"Black",90,90,90,90)
但是可惜的是
失败了Draw-Rectangle : Cannot process argument transformation on parameter 'gfx'. Cannot convert the "System.Object[]" value of type "System.Object[]" to type "PdfSharp.Drawing.XGraphics".
如何告诉函数提供的参数是[PdfSharp.Drawing.XGraphics]类型并使其起作用?
有什么想法吗?