Gostaria de saber se alguém aqui ja usou alguma API Java para validação de arquivos em PDF?
Que ele me possibilite saber a quantidade de página e se o arquivo está corrompido.
Desde já meu agradecimento a quem ajudar.
Gostaria de saber se alguém aqui ja usou alguma API Java para validação de arquivos em PDF?
Que ele me possibilite saber a quantidade de página e se o arquivo está corrompido.
Desde já meu agradecimento a quem ajudar.
Utilizando a API iText, você pode obter o número de páginas dessa forma:
int numeroDePaginas(File arquivo) {
RandomAccessFile raf = new RandomAccessFile(arquivo, "r");
RandomAccessSource ras = new RandomAccessSourceFactory().createSource(raf)
RandomAccessFileOrArray rafoa = new RandomAccessFileOrArray(ras);
PdfReader pdf = new PdfReader(rafoa, new byte[0]);
int paginas = pdf.getNumberOfPages();
pdf.close();
return paginas;
}
Grato. Sabe dizer alguma forma de detectar se o arquivo está corrompido?
Em principio a API lança um InvalidPdfException
se o arquivo estiver corrompido.
Mas você também pode utilizar o método isRebuilt()
para verificar se havia erros no arquivo.
int numeroDePaginas(File arquivo) {
try {
RandomAccessFile raf = new RandomAccessFile(arquivo, "r");
RandomAccessSource ras = new RandomAccessSourceFactory().createSource(raf)
RandomAccessFileOrArray rafoa = new RandomAccessFileOrArray(ras);
PdfReader pdf = new PdfReader(rafoa, new byte[0]);
if (pdf.isRebuilt()) {
// possivelmente corrompido
}
int paginas = pdf.getNumberOfPages();
pdf.close();
return paginas;
} catch (InvalidPdfException ipe) {
// possivelmente corrompido
}
}
Meu muito obrigado! Valeu…