itextsharp.dllが入っているので適当な場所に配置する。
PowerShellからitextsharp.dllのあるフォルダでDLLを読み込む。
> [System.Reflection.Assembly]::LoadFrom(( Join-Path $pwd itextsharp.dll))
GAC Version Location
--- ------- --------
False v1.1.4322 C:\itextsharp-4.1.2-dll\itextsharp.dll
これで準備ができたので、PdfReaderを使ってサイズを取得したいPDFファイルを読み込む。
> $pdfReader = New-Object iTextSharp.text.pdf.PdfReader(( Join-Path $pwd foo.pdf))
1ページめのサイズを取得する。
> $pdfReader.GetPageSize(1)
Type : 30
Chunks : {}
Top : 841.875
Border : -1
GrayFill : 0
Left : 0
Right : 595.275
Bottom : 0
BorderColorBottom :
BorderColorTop :
BorderColorLeft :
BorderColorRight :
Width : 595.275
Height : 841.875
BorderWidth : -1
BorderColor :
BackgroundColor :
Rotation : 0
BorderWidthLeft : -1
BorderWidthRight : -1
BorderWidthTop : -1
BorderWidthBottom : -1
UseVariableBorders : False
このファイルのページサイズは、
>$pdfReader.GetPageSize(1).Height #高さ
841.875
>$pdfReader.GetPageSize(1).Width #幅
595.275
このファイルはA4縦なわけだけど、数字だけみてもわからないのでiTextSharpで定義されているA4縦と比較する。
定義されているA4縦はこれでわかる。
> [ITextSharp.text.PageSize]::A4
Top :
Border :
GrayFill :
Left :
Right :
Bottom :
BorderColorBottom :
BorderColorTop :
BorderColorLeft :
BorderColorRight :
BorderWidth :
BorderColor :
BackgroundColor :
BorderWidthLeft :
BorderWidthRight :
BorderWidthTop :
BorderWidthBottom :
UseVariableBorders :
Type : 30
Chunks : {}
Width : 595
Height : 842
Rotation : 0
上記の値を使って、ファイルのページサイズをint型にキャストして比較する。
> [iTextSharp.text.PageSize]::A4.Height -eq [int]$pdfReader.GetPageSize(1).Height
True
ちなみに、A4横の高さと幅を得るには、
> [iTextSharp.text.PageSize]::A4.Rotate().Height #高さ
595
> [iTextSharp.text.PageSize]::A4.Rotate().Width #幅
842
で、取得できる。
0 コメント:
コメントを投稿