Não é difícil ler arquivos PDF em Java usando bibliotecas prontamente disponíveis. Ler arquivos PDF permite que você escreva programas Java que podem processar o texto nesses arquivos. Uma opção para ler arquivos PDF é a biblioteca gratuita e open-source PDFBox disponível na Apache. A plataforma de desenvolvimento Java Eclipse torna esse trabalho mais fácil e gerencia as bibliotecas que você baixará. Você precisa estar familiarizado com programação Java para utilizar essas bibliotecas Java.
Baixe o Java JDK do site da Sun. Este é um arquivo executável que você pode instalar no seu sistema executando-o. 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 do Java.
Baixe o sistema de desenvolvimento Eclipse e descompacte-o em um diretório de nível superior. Selecione "Eclipse IDE for Java Developers". Isso iniciará o download de "eclipse-java-galileo-SR2-win32.zip". Clique duas vezes no arquivo para descompactá-lo após o download completar. Selecione o diretório raiz "C:" para descompactar o Eclipse.
Inicie o Eclipse clicando duas vezes em "eclipse.exe" no diretório que você acabou de criar ao descompactar o arquivo zip do eclipse. No sistema Eclipse, crie um projeto chamado "PrintPdf". Selecione "Arquivo" depois "Novo" 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 "Criar pastas separadas para arquivos de origem e classe" esteja selecionado. Clique em "Concluir".
Crie uma pasta "lib" no 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".
Baixe o "PDFBox.jar" da Apache do site da 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, ao clicar naquele arquivo jar, você será levado a uma página onde pode selecionar um dos vários servidores que podem fornecer este arquivo. Escolha cada um deles e cada arquivo jar será baixado. Copie cada arquivo jar para o diretório lib que você criou.
Baixe o pacote Apache log4j.jar da mesma forma e copie o arquivo log4j.jar para o diretório. A biblioteca Apache PDFBox usa esta biblioteca de log da Apache, então este arquivo precisa estar presente.
Baixe o pacote Apache Commons Discovery como arquivo zip. Clique duas vezes no arquivo zip, selecione "commons-discovery-nn.jar" e extraia-o para o diretório lib.
No Eclipse, clique no diretório "lib" e pressione "F5". Certifique-se de que todos os arquivos jar que você adicionou são exibidos.
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 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".
Clique com o botão direito na pasta "src" do seu projeto "PrintPDF" e selecione "Novo" e "Pacote". Crie um pacote usando qualquer nome significativo. Por exemplo, nomeie o pacote "com.pdf.util". Clique em "Concluir".
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 "main".
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");
//print out results
System.out.println(pdf.getParsedText());
}
Note que o arquivo que você deseja imprimir está escrito no construtor do PDFTextParser ("data/JavaPDF.pdf"). Poderia facilmente ser um argumento de linha de comando:
PDFTextParser pdf = new PDFTextParser(argv[0])
ou selecionado de uma interface GUI.
Isso cria uma instância da classe PDFTextParser e chama seu método "getParsedText".
Insira o seguinte código logo abaixo da linha superior da classe "public class PDFTextParser" que foi criada para você.
private PDFParser parser = null;
// Extract text from PDF Document
public PDFTextParser(String fileName) {
File file = new File(fileName);
if (!file.isFile()) {
System.err.println("File " + fileName + " does not exist.");
}
//Set up instance of PDF parser
try {
parser = new PDFParser(new FileInputStream(file));
} catch (IOException e) {
System.err.println("Unable to open PDF Parser. " + e.getMessage());
}
}
//-------------------------------
public String getParsedText() {
PDDocument pdDoc = null;
COSDocument cosDoc = null;
String parsedText = null;
try {
PDFTextStripper pdfStripper = new PDFTextStripper();
parser.parse();
cosDoc = parser.getDocument();
pdDoc = new PDDocument(cosDoc);
//get list of all pages
List<PDPage> list = pdDoc.getDocumentCatalog().getAllPages();
//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);
} catch (IOException e) {
System.err.println("An exception occured in parsing the PDF Document." + e.getMessage());
} finally {
try {
if (cosDoc != null) cosDoc.close();
if (pdDoc != null) pdDoc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return parsedText;
}
Execute o programa. Clique com o botão direito na classe PDFTextParser e clique em "Executar como" e depois em "Aplicação Java". O programa deve rodar e imprimir o conteúdo de texto do arquivo PDF que você inseriu no seu código.
Crie um arquivo de configuração para suprimir a mensagem de erro do sistema de log Java log4j criada quando ele não encontra um arquivo de configuração na inicialização. 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.
Cole as seguintes linhas na tela vazia representando o arquivo "log4j.properties".
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=WARN, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Salve o arquivo "log4j.properties". A presença deste 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 erros reais.
Existem também vários pacotes comerciais que você pode usar para extrair texto de arquivos PDF, mas eles não são baratos.
Tecnologia Eletrônica © [www.351231.com]