Powershell和PDFSharp是否将自定义对象传递给函数?

时间:2018-08-16 13:28:38

标签: c# powershell pdfsharp

我正在尝试根据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]类型并使其起作用?

有什么想法吗?

0 个答案:

没有答案