Problemas ao comprimir documentos em PDF

0 respostas
java
L

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.

Criado 15 de maio de 2024
Respostas 0
Participantes 1