PowerShell Requires Chilkat v11.7.0+
PowerShell
Deflate Compression Level When Optimizing a PDF
See more PDF Optimization Examples
Demonstrates compressionLevel, which is the deflate level (1 to 9, 9 by default) used for every stream the optimizer re-encodes. Level 9 is the smallest and the slowest; level 1 is the quickest. The difference is usually a percent or two, so level 9 is the right default for a file that will be downloaded many times, and a lower level is worth considering only when a server optimizes PDFs on the fly. A value outside 1 to 9 is an error.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
# The PDF used in this example is available at watersense_accomplishments.pdf
$fac = New-Object Chilkat.FileAccess
$json = New-Object Chilkat.JsonObject
$jsonOut = New-Object Chilkat.JsonObject
$pdf1 = New-Object Chilkat.Pdf
$success = $pdf1.LoadFile("qa_data/pdf/watersense_accomplishments.pdf")
if ($success -eq $false) {
$($pdf1.LastErrorText)
exit
}
$json.UpdateInt("compressionLevel",1)
$success = $pdf1.Optimize("optimize",$json,$jsonOut)
if ($success -eq $false) {
$($pdf1.LastErrorText)
exit
}
$success = $pdf1.WriteFile("qa_output/watersense_level1.pdf")
if ($success -eq $false) {
$($pdf1.LastErrorText)
exit
}
$("level 1: " + $fac.FileSize("qa_output/watersense_level1.pdf"))
$pdf9 = New-Object Chilkat.Pdf
$success = $pdf9.LoadFile("qa_data/pdf/watersense_accomplishments.pdf")
if ($success -eq $false) {
$($pdf9.LastErrorText)
exit
}
$json.UpdateInt("compressionLevel",9)
$success = $pdf9.Optimize("optimize",$json,$jsonOut)
if ($success -eq $false) {
$($pdf9.LastErrorText)
exit
}
$success = $pdf9.WriteFile("qa_output/watersense_level9.pdf")
if ($success -eq $false) {
$($pdf9.LastErrorText)
exit
}
$("level 9: " + $fac.FileSize("qa_output/watersense_level9.pdf"))
# A level outside 1..9 fails, and LastErrorText says why.
$pdfBad = New-Object Chilkat.Pdf
$success = $pdfBad.LoadFile("qa_data/pdf/watersense_accomplishments.pdf")
if ($success -eq $false) {
$($pdfBad.LastErrorText)
exit
}
$json.UpdateInt("compressionLevel",12)
$success = $pdfBad.Optimize("optimize",$json,$jsonOut)
if ($success -eq $false) {
$("compressionLevel 12 was refused, as it should be.")
}