Como ler arquivo PDF em Java

click fraud protection
Mulher trabalhando em um escritório

Crédito da imagem: Pixland / Pixland / Getty Images

Não é difícil ler arquivos PDF em Java usando bibliotecas que estão prontamente disponíveis. Ler arquivos PDF permite escrever programas Java que podem processar o texto nesses arquivos. Uma opção para ler arquivos PDF é a biblioteca PDFBox gratuita e de código aberto disponível no Apache. A plataforma de desenvolvimento Eclipse Java torna esse trabalho mais fácil e gerencia as bibliotecas das quais você fará download. Você precisa estar familiarizado com a programação Java para usar essas bibliotecas Java.

Reúna as bibliotecas necessárias

Passo 1

Baixe o Java JDK do site da Sun. Este é um arquivo executável que você pode instalar em seu sistema executando-o. As versões estão disponíveis para Windows, Mac e Linux. Clique no botão vermelho "Download". Salve um arquivo chamado "jdk-6uxx-windows-xxx.exe" quando solicitado. Salve este arquivo e clique duas vezes nele para iniciar o instalador Java.

Vídeo do dia

Passo 2

Baixe o sistema de desenvolvimento Eclipse e descompacte-o em um diretório de nível superior. Selecione "Eclipse IDE para desenvolvedores Java". Isso iniciará o download de "eclipse-java-galileo-SR2-win32.zip." Clique duas vezes no arquivo para descompactá-lo após a conclusão do download. Selecione o local do diretório raiz "C:" para descompactar o Eclipse.

etapa 3

Inicie o Eclipse clicando duas vezes em "eclipse.exe" no diretório que você acabou de criar descompactando o arquivo zip do eclipse. No sistema Eclipse, crie um projeto denominado "PrintPdf". Selecione "Arquivo", "Novo" e "Projeto Java". Digite o nome do projeto "PrintPdf" na caixa de diálogo que aparece. Certifique-se de que o botão de opção que diz "Criar pastas separadas para arquivos de origem e de classe" esteja selecionado. Clique em “Concluir”.

Passo 4

Crie uma pasta "lib" em seu projeto "PrintPdf". Clique com o botão direito no projeto “PrintPdf” e selecione “Novo” e depois “Pasta”. Digite o nome “lib” e clique em “Concluir”.

Etapa 5

Baixe o Apache "PDFBox.jar" do site do Apache e copie-o no diretório lib que você acabou de criar. Na mesma página da web, baixe o arquivo "fontbox-nn.jar" e o arquivo "jempbox-nn.jar". Em cada caso, quando você clica nesse arquivo jar, ele o levará para uma página onde você pode selecionar um dos vários servidores que podem fornecer esse arquivo. Escolha cada um deles e cada arquivo jar será baixado. Copie cada arquivo jar no diretório lib que você acabou de criar.

Etapa 6

Faça download do pacote Apache log4j.jar da mesma maneira e copie o arquivo log4j.jar para o diretório. A biblioteca Apache PDFBox usa esta biblioteca de registro Apache, portanto, este arquivo precisa estar presente.

Etapa 7

Baixe o pacote Apache Commons Discovery como um arquivo zip. Clique duas vezes no arquivo zip, selecione "commons-discovery-nn.jar" e extraia-o no diretório lib.

Etapa 8

No Eclipse, clique no diretório “lib” e pressione “F5 ″. Certifique-se de que todos os arquivos jar adicionados sejam exibidos.

Etapa 9

Clique com o botão direito no projeto PrintPDF e selecione “Propriedades”. Selecione "Java Build Path" e selecione a guia "Bibliotecas". Clique em "Adicionar jars" e vá para o diretório lib que acabou de criar e adicione "commons-logging-nn.jar" "fontbox-nn.jar," "jempbox-nn.jar," "log4j-nn.jar, "e" pdfbox-nn.jar. " Clique em “OK”.

Escreva o código para ler PDFs

Passo 1

Clique com o botão direito na pasta "src" do seu projeto "PrintPDF" e selecione "Novo" e o "Pacote". Crie um pacote usando qualquer nome significativo. Por exemplo, nomeie o pacote "com.pdf.util." Clique em “Concluir”.

Passo 2

Clique com o botão direito no nome do pacote que você acabou de criar e selecione "Novo" e depois "Classe". Crie uma classe chamada "PDFTextParser." Certifique-se de clicar na caixa de seleção marcada "public static void main ..." para que o sistema crie um método "principal".

etapa 3

Edite o método "principal" na classe "PDFTextParser" para conter o seguinte código:

public static void main (String args []) {PDFTextParser pdf = new PDFTextParser ("data / javaPDF.pdf") GO // imprimir os resultados System.out.println (pdf.getParsedText ()) GO}

Observe que o arquivo que você deseja imprimir está escrito no construtor para PDFTextParser ("data / JavaPDF.pdf"). Também poderia ser um argumento de linha de comando:

PDFTextParser pdf = new PDFTextParser (argv [0])

VAI

ou selecionado a partir de uma interface GUI.

Ele cria uma instância da classe PDFTextParser e, a seguir, chama seu método "getParsedText".

Passo 4

Insira o código a seguir logo abaixo da linha de classe superior "public class PDFTextParser" que foi criada para você.

analisador PDFParser privado = null GO

// Extraia o texto do documento PDF. public PDFTextParser (String fileName) {File file = new File (fileName)

GO if (! File.isFile ()) {System.err.println ("File" + fileName + "não existe.") GO} // Configurar instância do analisador de PDF, tente {parser = new PDFParser (new FileInputStream (file)) GO} catch (IOException e) {System.err.println ("Incapaz de abrir PDF Parser. "+ e.getMessage ()) GO}} // public String getParsedText () {PDDocument pdDoc = null GO COSDocument cosDoc = null;
String parsedText = null; VAI

experimente {PDFTextStripper pdfStripper = new PDFTextStripper ()

GO parser.parse () GO cosDoc = parser.getDocument () GO pdDoc = new PDDocument (cosDoc) GO

// obter a lista de todas as páginas List  list = pdDoc.getDocumentCatalog (). getAllPages ()

VAI

// note que você pode imprimir as páginas que desejar // escolhendo valores diferentes da página inicial e final pdfStripper.setStartPage (1); // comprimento interno baseado em 1 = list.size (); // número total de páginas pdfStripper.setEndPage (length); // última página // obtém o texto das páginas selecionadas parsedText = pdfStripper.getText (pdDoc)

GO} catch (IOException e) {System.err .println ("Ocorreu uma exceção na análise do documento PDF." + E.getMessage ()) GO} finalmente {try {if (cosDoc! = null) cosDoc.close () GO if (pdDoc! = null) pdDoc.close () GO} catch (IOException e) {e.printStackTrace () GO} }
return parsedText GO}

Etapa 5

Execute o programa. Clique com o botão direito na classe PDFTextParser e clique em "Executar como" e depois em "Programa Java". O programa deve ser executado e imprimir o conteúdo de texto do arquivo PDF que você inseriu em seu código.

Suprimir mensagem de erro de inicialização Log4j

Passo 1

Crie um arquivo de configuração para suprimir a mensagem de erro log4j do sistema de criação de log Java criada quando ele não pode localizar um arquivo de configuração ao inicializar. Clique com o botão direito na pasta "src" do projeto PrintPDF e selecione "Novo" e depois "Arquivo". Nomeie o arquivo "log4j.properties". O Eclipse exibirá uma tela vazia para este novo arquivo.

Passo 2

Cole as seguintes linhas na tela vazia que representa o arquivo "log4j.properties".

etapa 3

Salve o arquivo "log4j.properties". A presença desse arquivo no diretório "src" de nível superior suprimirá a mensagem de inicialização log4j e quaisquer mensagens de registro triviais. O sistema log4j imprimirá apenas os erros reais.

Dica

Existem também vários pacotes comerciais que você pode usar para extrair texto de arquivos PDF, mas eles não são baratos.