ITextSharp retornando pdf do mesmo tamanho quando estou tentando compactar arquivos PDF com níveis diferentes

Estou lendo um pdf e injetando algum conteúdo usando o itextsharp. O resultadobyte[] é passado para o método abaixo junto com o nível de compactação.

public static byte[] method(byte[] pdf,int compressionlevel)
        {
            using (MemoryStream outputPdfStream1 = new MemoryStream())
            {
                //PdfReader reader1 = new PdfReader(pdf);
                //PdfStamper stamper1 = new PdfStamper(reader1, outputPdfStream1);
                //int level = (int)compressionlevel;
                //if (level <= 9)
                //    stamper1.Writer.CompressionLevel = (int)compressionlevel;
                //else
                //    stamper1.Writer.SetFullCompression();
                //stamper1.SetFullCompression();
                //stamper1.Close();
                //byte[] newfile = outputPdfStream1.ToArray();
                //return newfile;

                PdfReader reader = new PdfReader(pdf);
                PdfStamper stamper = new PdfStamper(reader, outputPdfStream1,PdfWriter.VERSION_1_5);
                int level = (int)compressionlevel;
                if (level <= 9)
                {
                   stamper.Writer.CompressionLevel = level;
                }
                else
                    stamper.Writer.SetFullCompression();
                int total = reader.NumberOfPages + 1;
                for (int i = 1; i < total; i++)
                {
                    reader.SetPageContent(i, reader.GetPageContent(i));
                }
                stamper.SetFullCompression();
                stamper.Close();
                byte[] newfile = outputPdfStream1.ToArray();
                return newfile;
            }
        } 

Se eu comentarstamper.SetFullCompression(); esse método está retornando o mesmo tamanho da matriz de bytes, independentemente do nível de compactação que estou passando (estou passando de 0 a 9 em cada caso).

Se eu descomentarstamper.SetFullCompression(); este método está retornando uma versão totalmente compactada do byte de entrada, independentemente do nível de compactação !!!

Qual é o objetivo / diferença destamper.SetFullCompression(); estamper.Writer.SetFullCompression();?

Qual é a maneira correta de usar diferentes níveis de compactação para que eu possa ver tamanhos diferentes em cada caso?

questionAnswers(2)

yourAnswerToTheQuestion