Estou com um problema ao comprimir documentos em pdf.
Estou utilizando a biblioteca do GhostScript e o problema é que ao comprimir documentos que contenham uma página como imagem, essas páginas ficam bom fundo preto.
Estou usando essas opções abaixo para tratar páginas com imagem, mas não sei o que pode estar faltando.
stream.clear();
stream.setData(imgBytes.toByteArray(), false, PRStream.NO_COMPRESSION);
stream.put(PdfName.TYPE, PdfName.XOBJECT);
stream.put(PdfName.SUBTYPE, PdfName.IMAGE);
stream.put(PdfName.FILTER, PdfName.DCTDECODE);
stream.put(PdfName.WIDTH, new PdfNumber(width));
stream.put(PdfName.HEIGHT, new PdfNumber(height));
stream.put(PdfName.BITSPERCOMPONENT, new PdfNumber(8));
stream.put(PdfName.COLORSPACE, PdfName.DEVICERGB);
stream.put(PdfName.BACKGROUND, new PdfName(“FFFFFF”)); // Define o fundo como branco
Na Dll do GhostScript estou passando os seguinte parâmetros.
String[] gsArgs = new String[26];
gsArgs[0] = “-gs”;
gsArgs[1] = “-sDEVICE=pdfwrite”;
gsArgs[2] = “-dPDFSETTINGS=/screen”;
gsArgs[3] = “-dCompressFonts=true”;
gsArgs[4] = “-dEmbedAllFonts=true”;
gsArgs[5] = “-dSubsetFonts=true”;
gsArgs[6] = “-dColorImageDownsampleType=/Bicubic”;
gsArgs[7] = “-dColorImageResolution=110”;
gsArgs[8] = “-dGrayImageDownsampleType=/Bicubic”;
gsArgs[9] = “-dGrayImageResolution=110”;
gsArgs[10] = “-dMonoImageDownsampleType=/Subsample”;
gsArgs[11] = “-dMonoImageResolution=110”;
gsArgs[12] = “-dDownsampleColorImages=true”;
gsArgs[13] = “-dDownsampleGrayImages=true”;
gsArgs[14] = “-dDownsampleMonoImages=true”;
gsArgs[15] = “-r150” ;
gsArgs[16] = “-dCompatibilityLevel=1.4”;
//gsArgs[14] = “-dPDFSETTINGS=/ebook”; //DPI: screen=72 - ebook=150 - printer=300 - prepress=300
gsArgs[17] = “-dNOPAUSE”;
gsArgs[18] = “-dQUIET”;
gsArgs[19] = “-dBATCH”;
gsArgs[20] = “-dUseXPutImage=false”;
gsArgs[21] = “-dAutoRotatePages=/None”; //-dAutoRotatePages=/None or /All or /PageByPage
gsArgs[22] = “-dNumRenderingThreads=8”;
gsArgs[23] = “-sOutputFile=” + caminhoPDF + “\compressed_temp_gs_” + nomePDFOriginal;
gsArgs[24] = “-f”;
gsArgs[25] = caminhoPDF + “\”+ nomePDFOriginal;
gs.initialize(gsArgs);
gs.exit();
}
Alguém pode me ajudar por favor.