Estou dando este conselho com todas as reservas, pois atualmente não tenho como verificar isso ...
No entanto, o que tenho certeza: o Ghostscript suporta a compactação JPEG2000 de imagens (mas você pode precisar especificamente construí-lo dessa forma; veja link ).
Agora, sobre o que não tenho certeza: há esse parâmetro de linha de comando -dAutoFilterColorImages=...
. Você pode ser capaz de usá-lo assim:
gswin32c.exe ^
-dBATCH ^
-dNOPAUSE ^
-dSAFER ^
-sDEVICE=pdfwrite ^
-dAutoFilterColorImages=false ^
-dUseFlateCompression=true ^
-sOutputFile=output-pdf-flate.pdf ^
c:/path/to/input-jpeg2000.pdf
Se funcionar como eu acho que funcione, uma compilação do Ghostscript habilitada para JPEG2000 lerá seu PDF problemático sem erros e gravará a saída PDF com imagens usando flate compressão em vez de JPEG2000.
UPDATE: Descobrimos algumas informações adicionais.
- Versões recentes do Ghostscript (atual é 8.71) são habilitadas para JPEG2000 por padrão.
- 'JPEG2000-enabled' significa: 'pode ler e processar JPEG2000 em entrada de PDF'.
- O Ghostscript não escreve JPEG2000 em seu PDF de saída [*].
[*] Razão: Não há suporte para criar imagens JPEG2000, porque o codificador custa dinheiro para licenciar (e é patenteado, por isso é arriscado escrever uma implementação própria).
Isso significa que você não precisa nem mesmo adicionar os parâmetros -dAutoFilterColorImages=...
e -dUseFlateCompression=...
à linha de comando. Uma simples destilação do PDF deve funcionar:
gswin32c .... -sDEVICE=pdfwrite -sOutputFile=out.pdf input.pdf
Atualização 2: