PowerShell_Scripts/ImageMagick/Get-TiffPages.ps1

33 lines
1.2 KiB
PowerShell

[CmdletBinding()]param(
[string[]]$SrcPath,
[string]$FilePattern="*.tif",
[int]$PageNumberDigits=3,
[switch]$Force
)
Remove-TypeData -TypeName "ImageMagickPagesz" -ErrorAction Ignore -Confirm:$false
Update-TypeData -TypeName "ImageMagickPagesz" -DefaultDisplayPropertySet 'ImageMagickPath', 'Page' -Force -Confirm:$false
$local:PageNumberFormat="D$PageNumberDigits"
Get-ChildItem $(Join-Path $SrcPath $FilePattern) -Force:$Force |
ForEach-Object {
$local:f = $_;
& magick identify $f.FullName | ForEach-Object {
$local:p = [ordered]@{
PSTypeName = "ImageMagickPagesz"
PSFile = $f
BaseName = $f.BaseName
ImageMagickPath = $_ -ireplace " TIFF \d+x\d+ \d+x\d+\+\d+\+\d .*$",""
Page = 0
PageOutputName = [string]::Empty
}
if( $p.ImageMagickPath -match '.*\[(\d+)\]$' ) {
$p.Page = $matches[1]
}
$p.Page = $(0+$($p.Page)).ToString($PageNumberFormat)
$p.PageOutputName = "$($p.BaseName)_$($p.Page)"
[PSCustomObject]$p
}
}