Skip to content

Como ler arquivo pdf em Java

Existem várias bibliotecas para ler arquivo PDF em Java. Algumas são produtos pagos (iText e JPedal) e outras são grátis (PDF Box). No java-source há uma lista com várias opções.
Neste post vou mostrar um exemplo de como ler um arquivo pdf em Java através do PDFBox, um projeto Apache. Baixe aqui o PDF Box.

Como ler um arquivo PDF em Java
Como ler um arquivo PDF em Java

No Eclipse, crie um Java Project chamado ExemploLeitorPDF e adicione um Folder chamado “lib”, onde iremos copiar a biblioteca do PDF Box (pdfbox-app-1.5.0.jar). Veja a imagem:

[photopress:build_path.png,full,pp_image]

Adicione a biblioteca no classpath do projeto:

[photopress:libraries.png,full,pp_image]

O próximo passo é criar a classe UtilTexto, conforme a Listagem 1.


package net.marcoreis.util;

import java.io.*;
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.util.*;

public class UtilTexto {
/**
* Le o conteudo (texto) de um arquivo pdf
*
*/
public static String extraiTextoDoPDF(String caminho) {
PDDocument pdfDocument = null;
try {
pdfDocument = PDDocument.load(caminho);
PDFTextStripper stripper = new PDFTextStripper();
String texto = stripper.getText(pdfDocument);
return texto;
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (pdfDocument != null) try {
pdfDocument.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

/**
*
* Extrai o conteudo do arquivo indicado
*
*/
public static void main(String[] args) {
String caminho = "/Users/marcoreis/Downloads/cpc_L5869.pdf";
String texto = extraiTextoDoPDF(caminho);
System.out.println(texto);
}
}

Listagem 1.

4 thoughts on “Como ler arquivo pdf em Java”

  1. Pessoal, eu fiz um código exatamente igual, más no console sai desas forma. Alguém sabe pq?

    NF ÍRS ÍCºCCISRº NFP CNÍEͺ CºICCRSCP CNR NONITNSAFTVLDDDDDDDDDDDDDDDD ÃBÀV!ÀÃVGD”GQDÇÀG APTO PARA PAGAMENTO
    NF ÍRº ÍCºCCISRºCNNP CNÍEST N ICCRCSP CNR N IͺRAORVLDDDDDDDDDDDDDDDD GÀÁÇÃDÃBÀVIDGUMBIDÁDÃ.VG APTO PARA PAGAMENTO
    NF ÍRF ÍCºCCISRÍFOSP CNÍEN CCICCNRRP CNS SºSI ÍOAF VLDDDDDDDDDDDDDDDD .DÁBQÁBJGVMG APTO PARA PAGAMENTO

  2. Alessandro Pericles

    Boa tarde amigo,

    Excelente exemplo, me salvou em um projeto. Mas agora quero complicar mais um pouco, já estou com três semana pesquisando e fazendo teste mas sem sucesso. Meu problema é : preciso fazer upload de arquivos PDF e gravar no banco de dados(até aqui só sucesso) mas preciso gravar um texto em cada pagina enviando onde tenho o ultimo numero de paginação. Ex. tenho o numero da ultima pagina gravado no banco, quero passar esse numero para seguir a sequencia no arquivo que estou anexando (upload) ultima pagina “Pagina: 33” estou subindo um arquivo com quatro paginas, então esse teria um texto em cada pagina “Pagina : 34”, “Pagina : 35”, “Pagina : 36” e “Pagina : 37”. Sistema de processo.
    Você teria alguma ideia para me salvar ? ou alguma API mesmo que seja paga ? (iText e JPedal)

    Att
    Alessandro Péricles

Leave a Reply

Your email address will not be published. Required fields are marked *