' ' Copyright (c) 2001-2012 by PDFTron Systems Inc. All Rights Reserved. ' Imports System Imports pdftron Imports pdftron.Common Imports pdftron.Filters Imports pdftron.SDF Imports pdftron.PDF Module Module1 '--------------------------------------------------------------------------------------- ' The following sample illustrates how to reduce PDF file size using the ' Optimizer class. ' ' 'pdftron.PDF.Optimizer' is an optional PDFNet Add-On utility class that can be ' used to optimize PDF documents by reducing the file size, removing redundant ' information, and compressing data streams using the latest in image compression ' technology. PDF Optimizer can compress and shrink PDF file size with the ' following operations: ' - Remove duplicated fonts, images, ICC profiles, and any other data stream. ' - Optionally convert high-quality or print-ready PDF files to small, efficient and web-ready PDF. ' - Optionally down-sample large images to a given resolution. ' - Optionally compress or recompress PDF images using JBIG2 and JPEG2000 compression formats. ' - Compress uncompressed streams and remove unused PDF objects. '--------------------------------------------------------------------------------------- Sub Main() PDFNet.Initialize() Dim input_path As String = "../../../TestFiles/" Dim output_path As String = "../../../TestFiles/Output/" Dim input_filename As String = "newsletter.pdf" '-------------------------------------------------------------------------------- ' Example 1) Simple optimization of a pdf with default settings. ' Try Dim doc As PDFDoc = New PDFDoc(input_path & input_filename) doc.InitSecurityHandler() Optimizer.Optimize(doc) doc.Save(output_path & input_filename & "_opt1.pdf", SDFDoc.SaveOptions.e_linearized) Catch e As PDFNetException Console.WriteLine(e.Message) End Try '-------------------------------------------------------------------------------- ' Example 2) Reduce image quality and use jpeg compression for ' non monochrome images. Try Dim doc As PDFDoc = New PDFDoc(input_path & input_filename) doc.InitSecurityHandler() Dim image_settings As New Optimizer.ImageSettings ' low quality jpeg compression image_settings.SetCompressionMode(Optimizer.ImageSettings.CompressionMode.e_jpeg) image_settings.SetQuality(1) ' Set the output dpi to be standard screen resolution image_settings.SetImageDPI(144, 96) ' this option will recompress images not compressed with ' jpeg compression and use the result if the new image ' is smaller. image_settings.ForceRecompression(True) ' this option is not commonly used since it can ' potentially lead to larger files. It should be enabled ' only if the output compression specified should be applied ' to every image of a given type regardless of the output image size 'image_settings.ForceChanges(true); ' use the same settings for both color and grayscale images Dim opt_settings As New Optimizer.OptimizerSettings opt_settings.SetColorImageSettings(image_settings) opt_settings.SetGrayscaleImageSettings(image_settings) Optimizer.Optimize(doc, opt_settings) doc.Save(output_path & input_filename & "_opt2.pdf", SDFDoc.SaveOptions.e_linearized) Catch e As PDFNetException Console.WriteLine(e.Message) End Try '-------------------------------------------------------------------------------- ' Example 3) Use monochrome image settings and default settings ' for color and grayscale images. Try Dim doc As PDFDoc = New PDFDoc(input_path & input_filename) doc.InitSecurityHandler() Dim mono_image_settings As New Optimizer.MonoImageSettings mono_image_settings.SetCompressionMode(Optimizer.MonoImageSettings.CompressionMode.e_jbig2) mono_image_settings.ForceRecompression(True) Dim opt_settings As New Optimizer.OptimizerSettings opt_settings.SetMonoImageSettings(mono_image_settings) Optimizer.Optimize(doc, opt_settings) doc.Save(output_path & input_filename & "_opt3.pdf", SDFDoc.SaveOptions.e_linearized) Catch e As PDFNetException Console.WriteLine(e.Message) End Try PDFNet.Terminate() End Sub End Module