Q: I want compress pdf with 'PDFNet SDK' in c#.
Simple requirement:
1. Use in ASP.NET web site
2. Compress PDFs user uploaded with big image
3. How to import the component in my project?
----------------------
A: The simplest way to optimize and compress PDF is using
‘pdftron.PDF.Optimizer’ class from PDFNet SDK (http://www.pdftron.com/
pdfnet).
As a starting point you may want to take a look at PDF Optimizer
sample project: http://www.pdftron.com/pdfnet/samplecode.html#Optimizer
In context of ASP.NET you can use PDF Optimizer as follows:
In your application solution, add a reference to 'PDFNet.DLL' (located
in 'PDFNet/Lib' folder). Then add the following code you your ASP.NET
page:
using pdftron;
using pdftron.Common;
using pdftron.SDF;
using pdftron.PDF;
...
PDFNet.Initialize(); // you can call this method one time - in your
application start function.
try {
using (PDFDoc doc = new PDFDoc("input.pdf")) {
doc.InitSecurityHandler();
Optimizer.ImageSettings color_image_settings = new
Optimizer.ImageSettings();
Optimizer.ImageSettings grayscale_image_settings = new
Optimizer.ImageSettings();
Optimizer.MonoImageSettings mono_image_settings = new
Optimizer.MonoImageSettings();
mono_image_settings.SetCompressionMode(Optimizer.MonoImageSettings.CompressionMode.e_jbig2);
mono_image_settings.ForceChanges(true);
mono_image_settings.ForceRecompression(true);
// ... etc.
Optimizer.Optimize(doc, color_image_settings,
grayscale_image_settings, mono_image_settings);
doc.Save("my.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
catch (PDFNetException e){
Console.WriteLine(e.Message);
}
Please note that some optimization options (such as image resolution)
can affect the image quality in processed documents.
The optimizer is licensed as an optional add-on to PDFNet Core
(similat to PDF/A, Convert, and Silverlight add-on).