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. Olá, tentei rodar o código e aparece esse erro: Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.pdfbox.pdfparser.BaseParser.(BaseParser.java:58)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:861)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:829)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:754)
    at UtilTexto.extraiTextoDoPDF(UtilTexto.java:13)
    at UtilTexto.main(UtilTexto.java:35)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    … 6 more

Leave a Reply

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