Pipelines/PDF.ps1
|
function Get-FoPDFPipeline { param([hashtable]$Context) $s = $Context.Settings $layeredGate = { -not $args[0].IsPDFLayered -or -not $args[0].Settings.PDFSkipLayered -or ($args[0].Settings.PDFProfile -eq 'none') } $steps = @() $steps += New-FoStep -Name 'mutool (1/4)' -Executable 'mutool.exe' -Arguments 'clean -g -z %INPUTFILE% %TMPOUTPUTFILE%' -Mode TempOutput -Gate $layeredGate $arch = Resolve-FoPluginArchitectureFromPath -PluginPath $s.PluginPath $gs = Get-FoGhostscriptExecutableName -Architecture $arch $gsGate = { ($args[0].Extension -ne '.ai') -and ( (-not $args[0].IsPDFLayered) -or (-not $args[0].Settings.PDFSkipLayered) -or ($args[0].Settings.PDFProfile -eq 'none') ) } $steps += New-FoStep -Name 'Ghostscript (2/4)' -Executable $gs -Arguments '-sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sOutputFile=%TMPOUTPUTFILE% %INPUTFILE%' -Mode TempOutput -Gate $gsGate $steps += New-FoStep -Name 'cpdf (3/4)' -Executable 'cpdf.exe' -Arguments '-squeeze %INPUTFILE% -o %TMPOUTPUTFILE%' -Mode TempOutput -Gate $layeredGate $steps += New-FoStep -Name 'qpdf (4/4)' -Executable 'qpdf.exe' -Arguments '--stream-data=compress --object-streams=generate %INPUTFILE% %TMPOUTPUTFILE%' -Mode TempOutput -Gate $layeredGate return $steps } |