>> Tecnologia eletrônica >  >> Lar inteligente >> Vida Inteligente

Como ler arquivo PDF em Java


Não é difícil ler arquivos PDF em Java usando bibliotecas que estão prontamente disponíveis. A leitura de 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 facilita esse trabalho e gerencia as bibliotecas que você fará download. Você precisa estar familiarizado com a programação Java para fazer uso dessas bibliotecas Java.

Reúna as bibliotecas necessárias

Etapa 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 "Baixar". Salve um arquivo chamado "jdk-6uxx-windows-xxx.exe" quando solicitado. Salve este arquivo e clique duas vezes nele para iniciar o instalador Java.

Etapa 2


Faça download do 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 chamado "PrintPdf". Selecione “Arquivo” e depois “Novo” e depois “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 esteja selecionado que diz "Criar pastas separadas para arquivos de origem e de classe". Clique em "Concluir".

Etapa 4


Crie uma pasta "lib" em seu projeto "PrintPdf". Botão direito do mouse no projeto “PrintPdf” e selecione “Novo” e depois “Pasta”. Digite o nome “lib” e clique em “Finish”.

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, baixe o arquivo "fontbox-nn.jar" e o arquivo "jempbox-nn.jar". Em cada caso, quando você clicar nesse arquivo jar, ele o levará a 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 para o diretório lib que você acabou de criar.

Etapa 6


Faça download do pacote Apache log4j.jar da mesma forma e copie o arquivo log4j.jar no diretório. A biblioteca Apache PDFBox usa essa biblioteca de log do Apache, portanto, esse arquivo precisa estar presente.

Etapa 7


Baixe o pacote Apache Commons Discovery como um arquivo zip. Dê um duplo clique no arquivo zip, selecione o "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 do mouse 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 você 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

Etapa 1


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

Etapa 2


Clique com o botão direito do mouse 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 como "public static void main..." para que o sistema crie um método "main".

Etapa 3


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

public static void main(String args[]){ PDFTextParser pdf =new PDFTextParser("data/javaPDF.pdf") GO //imprime 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"). Poderia facilmente ser um argumento de linha de comando:
PDFTextParser pdf = new PDFTextParser(argv[0])

VAI

ou selecionado de uma interface GUI.

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

Etapa 4


Insira o seguinte código logo abaixo da linha de classe superior "classe pública PDFTextParser" que foi criada para você.

analisador PDFParser privado =null GO
// Extract text from PDF Document
public PDFTextParser(String fileName) {
 File file = new File(fileName)

GO if (!file.isFile()) { System.err.println("File " + fileName + " não existe.") GO } //Configura a instância do analisador de PDF try { parser =new PDFParser(new FileInputStream( file)) GO } catch (IOException e) { System.err.println("Não foi possível abrir o analisador de PDF. " + e.getMessage()) GO } } //------------- ------------------ public String getParsedText() { PDDocument pdDoc =null GO COSDocument cosDoc =null;
String analisadoTexto =null; VAI
try { 
 PDFTextStripper pdfStripper = new PDFTextStripper()

GO parser.parse() GO cosDoc =analisador.getDocument() GO pdDoc =new PDDocument(cosDoc) GO
//get list of all pages
 List<PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

VAI
//note that you can print out any pages you want
 //by choosing different values of the start and end page
 pdfStripper.setStartPage(1); //1-based
 int length = list.size(); //total number of pages
 pdfStripper.setEndPage(length); //last page

 //get the text for the pages selected
 parsedText = pdfStripper.getText(pdDoc)

GO } catch (IOException e) { System.err .println("Ocorreu uma exceção ao analisar o documento PDF." + e.getMessage()) GO } finally { try { if (cosDoc !=null) cosDoc.close() GO if (pdDoc !=null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
return texto analisado GO }

Etapa 5


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

Suprimir a mensagem de erro de inicialização do Log4j

Etapa 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 puder localizar um arquivo de configuração quando for inicializado. Clique com o botão direito do mouse na pasta “src” do projeto PrintPDF e selecione “Novo” e depois “Arquivo”. Nomeie o arquivo como "log4j.properties" O Eclipse exibirá uma tela vazia para este novo arquivo.

Etapa 2


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

Defina o nível do logger raiz como DEBUG e seu único anexador como A1. log4j.rootLogger=AVISO, A1

A1 está configurado para ser um ConsoleAppender. log4j.appender.A1=org.apache.log4j.ConsoleAppender

A1 usa PatternLayout. log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

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 do log4j e quaisquer mensagens de log triviais. O sistema log4j imprimirá apenas os erros reais.

Dica


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