---
title: "Hyper-compress PDF documents | Nutrient Document Converter Services"
canonical_url: "https://www.nutrient.io/guides/document-converter/document-converter-services/hyper-compression/hyper-compression-using-csharp/"
md_url: "https://www.nutrient.io/guides/document-converter/document-converter-services/hyper-compression/hyper-compression-using-csharp.md"
last_updated: "2026-06-08T09:14:14.317Z"
description: "Learn how to enable hyper-compression when converting documents to PDF using Nutrient Document Converter Services (DCS) with the SOAP-based API. Includes supported compression types and sample C# code."
---

# Hyper-compress PDF documents

With a [Professional or higher license](https://www.nutrient.io/low-code/pricing), Nutrient Document Converter Services (DCS) enables hyper-compression during PDF conversions.

Hyper-compression includes:

- JPEG2000 compression

- JBIG2 compression

- Color detection

- Mixed raster content (MRC)

- Content optimization by removing unnecessary elements

This guide explains how to apply hyper-compression settings using the DCS simple object access protocol (SOAP)-based API. The sample code below uses the `OpenService` and `CloseService` methods from the [`DocumentConverterServiceClient`](https://www.nutrient.io/guides/document-converter/document-converter-services/knowledge-base/open-and-close-documentconverterserviceclient/).

## Sample code for applying hyper-compression using the API

To apply hyper-compression, add a `CompressionSettings` instance to the `ConversionSettings` object before initiating the conversion as shown in the code sample below:

```csharp

            /// <summary>
            /// PDF conversion, including compression.
            /// </summary>
            /// <param name="sourceFileName">Source file path</param>
            /// <param name="targetFolder">Path to target folder</param>
            static void PDFConversionCompression(string sourceFileName, string targetFolder)
        {
            DocumentConverterServiceClient client = null;
            try
            {
                // If the target folder does not exist, create it.
                if (!Directory.Exists(targetFolder))
                {
                    Directory.CreateDirectory(targetFolder);
                }
                // Determine the source file and read it into a byte array.
                byte[] sourceFile = File.ReadAllBytes(sourceFileName);

                // Open the service and configure the bindings.
                client = OpenService(ServiceURL);

                // Set the absolute minimum open options.
                OpenOptions openOptions = new OpenOptions();
                openOptions.OriginalFileName = Path.GetFileName(sourceFileName);
                openOptions.FileExtension = Path.GetExtension(sourceFileName);

                // Set the absolute minimum conversion settings.
                ConversionSettings conversionSettings = new ConversionSettings();
                conversionSettings.Fidelity = ConversionFidelities.Full;
                conversionSettings.Quality = ConversionQuality.OptimizeForPrint;

                // Set compression settings.
                CompressionSettings compressionSettings = new CompressionSettings();

                // Enable JPEG2000 compression.
                compressionSettings.EnableJPEG2000 = BooleanEnum.True;

                // Enable JBIG2 compression.
                compressionSettings.EnableJBIG2 = BooleanEnum.True;
                compressionSettings.JBIG2PMSThreshold = 85;

                // Enable color detection.
                compressionSettings.EnableColorDetection = BooleanEnum.True;

                // Mixed raster compression.
                compressionSettings.EnableMRC = BooleanEnum.True;

                // Remove unneeded content.
                compressionSettings.RemoveAnnotations = BooleanEnum.True;
                compressionSettings.RemoveBlankPages = BooleanEnum.True;
                compressionSettings.RemoveBookmarks = BooleanEnum.True;
                compressionSettings.RemoveEmbeddedFiles = BooleanEnum.True;
                compressionSettings.RemoveFormFields = BooleanEnum.True;
                compressionSettings.RemoveHyperlinks = BooleanEnum.True;
                compressionSettings.RemoveJavaScript = BooleanEnum.True;
                compressionSettings.RemoveMetadata = BooleanEnum.True;
                compressionSettings.RemovePageThumbnails = BooleanEnum.True;

                // Set compression settings.
                conversionSettings.CompressionSettings = compressionSettings;

                // Carry out the conversion.
                byte[] convFile = client.Convert(sourceFile, openOptions, conversionSettings);

                // Write the converted file back to the file system with a PDF extension.
                string destinationFileName = Path.Combine(targetFolder, Path.GetFileNameWithoutExtension(sourceFileName) + "." + conversionSettings.Format);
                using (FileStream fs = File.Create(destinationFileName))
                {
                    fs.Write(convFile, 0, convFile.Length);
                    fs.Close();
                }
                Console.WriteLine("File converted to " + destinationFileName);
            }
            catch (FaultException<WebServiceFaultException> ex)
            {
                Console.WriteLine($"FaultException occurred: ExceptionType: {ex.Detail.ExceptionType.ToString()}");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                if (client!= null)
                {
                    CloseService(client);
                }
            }
        }

```