Ler pdf & capturar texto

3 respostas
F

Prezados,

Estou fazendo alguns testes com o objetivo de ler um arquivo PDF e capturar algumas informações.
O PDF que estou lendo não é padronizado com isso tenho que fazer algumas pesquisas nele capturando as informações.
Já consegui abrir o PDF e fazer a pesquisa atraves do método viewPdf.indexOf(“RESENHA DO CONTRATO”);
O que estou querendo fazer é o seguinte:

  1. Fazer uma busca no PDF pela String “RESENHA DE CONTRATO”;
  2. Fazer uma busca no PDF, a partir da posição onde foi encontrato a String “RESENHA DO CONTRATO”, pela String “DAS PARTES”.

Não posso fazer uma busca direta pela String “DAS PARTES”, pois essa String existe em outros locais do PDF antes da String “RESENHA DO CONTRATO”, preciso procurar depois dessa String.
Segue abaixo exemplo do PDF.
O objetivo será ler os dados do PDF, Resenha do Contrato, Objeto, Valor e Dotação e guardar essas informações no banco.
Se alguem puder me ajudar agradeço.

Felipe Aragão

RESENHA DO CONTRATO  000/2010. PROCESSO : 000/2010.

DAS PARTES: QQQQQQQQQQQQQQQQQQQQ, por intermédio da AAAAAAAAAAAAAAAA.

OBJETO: Execução dos serviços de elaboração QQQQQQQQQQQQQQQQQQQQQQ.

VALOR E DOTAÇAO ORCAMENTARIA: Os Recursos

Orçamentários para a cobertura das despesas decorrentes deste contrato

tem seu valor estimado em R$ 000.000,00(0), Os Recursos destinados

a execução deste Contrato correrão por conta da seguinte dotação

orçamentária: Função: - 00 xxxxxxxx; 000 ? oooooooo; 0000 ? ttttttttttttttttttttttttttttttttttttttt;

PI: YYYYYYYY; 000000 ? AAAAAAAAA;

[telefone removido] - Recursos Ordinários;. PRAZO: 00 (00) dias contados

a partir do recebimento da Ordem de Serviço.

BASE LEGAL: Lei 8.666/93 e suas alterações introduzidas pela Lei 8.883/94.

Cidade, 00 de março de 2010. ASSINATURAS: KKKKKKKKKKKKKKKKKKKKKK

pela KKKKKK e PPPPPPPP pela OOOOOOO.

OOOOOOOOOOOOOOOOOOOOOOOO -

Chefe da Assessoria Jurídica / OOOOOO.

OAB/MA . 00000

3 Respostas

F

Opa…

Faltou colocar a biblioteca que vc está usando para manipular o pdf !!!

Abraço,

Fred

F

Segue código.

public static void main(String[] args) {
		// TODO Auto-generated method stub
		PdfParser pdf = new PdfParser();
		pdf.setEnderecoRecurso("C://Dados//WorkSpaces//workspace//LerPDF//src//2010.pdf");
		String viewPdf = pdf.getConteudo();
		int idContrato =  viewPdf.indexOf("RESENHA DO CONTRATO");
                                ...
}


Segue classe utilizada para ler o PDF.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;
public class PdfParser{
	private String enderecoRecurso;
	public void setEnderecoRecurso(String enderecoRecurso){
		this.enderecoRecurso = enderecoRecurso; //endereço dos ficheiros
	}
	public String getConteudo()	{
		File f = new File(this.enderecoRecurso);
		FileInputStream is = null;
		try{
			is = new FileInputStream(f);
		}
		catch(IOException e){
			System.out.println("ERRO: " + e.getMessage());
			return null;
		}

		PDDocument pdfDocument = null;
		try{
			PDFParser parser = new PDFParser(is);
			parser.parse();
			pdfDocument = parser.getPDDocument();
			PDFTextStripper stripper = new PDFTextStripper();
			return stripper.getText(pdfDocument);
		}
		catch (IOException e){
			return "ERRO: Não é possível abrir a stream" + e;
		}
		catch (Throwable e){
			// Fazemos um catch, uma vez que precisamos de fechar o recurso
			return "ERRO: Um erro ocorreu enquanto tentava obter o conteúdo do PDF" + e;
		}
		finally{
			if (pdfDocument != null){
				try{
					pdfDocument.close();
				}
				catch (IOException e){
					return "ERRO: Não foi possível fechar o PDF." + e;
				}
			}
		}
	}
}
ViniGodoy

Oi. Não poste o título do tópico apenas com letras maiúsculas. Não tem pq chamar mais atenção do que o resto do pessoal do GUJ. Fora que ficaria horrível ler a lista de tópicos se todos fizessem isso.

E sempre que for postar código, use a tag code:

Seu código aqui

Isso faz com que ele fique colorido e formatado, caso contrário, ninguém vai ler.

Criado 19 de março de 2010
Ultima resposta 20 de mar. de 2010
Respostas 3
Participantes 3