Visual FoxPro Requires Chilkat v11.7.0+
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loFac
LOCAL loJson
LOCAL loJsonOut
LOCAL loPdf1
LOCAL loPdf9
LOCAL loPdfBad
lnSuccess = 0
* 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
loFac = CreateObject('Chilkat.FileAccess')
loJson = CreateObject('Chilkat.JsonObject')
loJsonOut = CreateObject('Chilkat.JsonObject')
loPdf1 = CreateObject('Chilkat.Pdf')
lnSuccess = loPdf1.LoadFile("qa_data/pdf/watersense_accomplishments.pdf")
IF (lnSuccess = 0) THEN
? loPdf1.LastErrorText
RELEASE loFac
RELEASE loJson
RELEASE loJsonOut
RELEASE loPdf1
CANCEL
ENDIF
loJson.UpdateInt("compressionLevel",1)
lnSuccess = loPdf1.Optimize("optimize",loJson,loJsonOut)
IF (lnSuccess = 0) THEN
? loPdf1.LastErrorText
RELEASE loFac
RELEASE loJson
RELEASE loJsonOut
RELEASE loPdf1
CANCEL
ENDIF
lnSuccess = loPdf1.WriteFile("qa_output/watersense_level1.pdf")
IF (lnSuccess = 0) THEN
? loPdf1.LastErrorText
RELEASE loFac
RELEASE loJson
RELEASE loJsonOut
RELEASE loPdf1
CANCEL
ENDIF
? "level 1: " + STR(loFac.FileSize("qa_output/watersense_level1.pdf"))
loPdf9 = CreateObject('Chilkat.Pdf')
lnSuccess = loPdf9.LoadFile("qa_data/pdf/watersense_accomplishments.pdf")
IF (lnSuccess = 0) THEN
? loPdf9.LastErrorText
RELEASE loFac
RELEASE loJson
RELEASE loJsonOut
RELEASE loPdf1
RELEASE loPdf9
CANCEL
ENDIF
loJson.UpdateInt("compressionLevel",9)
lnSuccess = loPdf9.Optimize("optimize",loJson,loJsonOut)
IF (lnSuccess = 0) THEN
? loPdf9.LastErrorText
RELEASE loFac
RELEASE loJson
RELEASE loJsonOut
RELEASE loPdf1
RELEASE loPdf9
CANCEL
ENDIF
lnSuccess = loPdf9.WriteFile("qa_output/watersense_level9.pdf")
IF (lnSuccess = 0) THEN
? loPdf9.LastErrorText
RELEASE loFac
RELEASE loJson
RELEASE loJsonOut
RELEASE loPdf1
RELEASE loPdf9
CANCEL
ENDIF
? "level 9: " + STR(loFac.FileSize("qa_output/watersense_level9.pdf"))
* A level outside 1..9 fails, and LastErrorText says why.
loPdfBad = CreateObject('Chilkat.Pdf')
lnSuccess = loPdfBad.LoadFile("qa_data/pdf/watersense_accomplishments.pdf")
IF (lnSuccess = 0) THEN
? loPdfBad.LastErrorText
RELEASE loFac
RELEASE loJson
RELEASE loJsonOut
RELEASE loPdf1
RELEASE loPdf9
RELEASE loPdfBad
CANCEL
ENDIF
loJson.UpdateInt("compressionLevel",12)
lnSuccess = loPdfBad.Optimize("optimize",loJson,loJsonOut)
IF (lnSuccess = 0) THEN
? "compressionLevel 12 was refused, as it should be."
ENDIF
RELEASE loFac
RELEASE loJson
RELEASE loJsonOut
RELEASE loPdf1
RELEASE loPdf9
RELEASE loPdfBad