0

Powershell は初めてで、関数に渡したオブジェクトのメソッドにアクセスしようとすると問題が発生します。

私が理解できないのは、このオブジェクトのフィールドにアクセスできるということです。

これが私のコードです:

Add-Type -Path .\itextsharp.dll

Function getText ($reader, $page)
{
    # WORKS : CAN ACCESS THE NumberOfPages FIELD HERE
    echo $reader.NumberOfPages

    # ERROR : CAN'T ACCESS THE GetPageContent METHOD
    return $reader.GetPageContent($page)
}

$reader = New-Object iTextSharp.text.pdf.pdfreader -ArgumentList "C:\toto.pdf"

# WORKS : CAN ACCESS THE NumberOfPages FIELD
for ($page = 1; $page -le $reader.NumberOfPages; $page++)
{
    # WORKS : CAN ACCESS THE GetPageContent METHOD
    $lines = $reader.GetPageContent($page) -join "" -split "`n"

    getText ($reader, $page)
}

簡単な方法でメソッドにアクセスできますか?

4

2 に答える 2

2

$reader のタイプは次のとおりです。

System.Management.Automation.PSReference`1[iTextSharp.text.pdf.pdfreader]

関数内では、そのプロパティを参照する必要がありValueます。例:

$reader.Value.NumberOfPages

とはいえ、変数が$reader参照するものを変更していないため、この関数で ref を渡している理由がわかりません。

于 2013-10-25T01:08:02.920 に答える