Introdução
Fala, galera do VOL.
Estamos por aqui novamente, com mais uma publicação. Dessa vez, vamos montar um aplicativo Java SE com a IDE NetBeans inspirada no script Perl do
Ademir Ferreira Furtado disponível
aqui.
Obrigado, Ademir.
O problema: o
DOU, Diário Oficial da União, é um periódico muito importante, que divulga informações valiosas para os profissionais da área de consultoria, advocacia e contabilidade, como legislação, por exemplo.
Acontece que a ferramenta disponibilizada no endereço
portal.in.gov, não permite download do arquivo completo do DOU, só é possível baixar página por página.
Nesse sentido, alguns escritórios de advocacia têm até contratado programadores ou mobilizado seu setor de TI para que se possa obter o DOU mais facilmente, pois, nessas empresas, esse periódico é lido diariamente por profissionais.
O script do Ademir faz o download do DOU completo, com muita tranquilidade. Eu mesmo testei no
Debian e funcionou sem problemas. Acontece que nem todo mundo vai conseguir implementar
Perl na sua máquina de trabalho, para poder beneficiar-se desta ferramenta.
Gostaria de deixa claro que, sem o script do Ademir, eu não faria esse tutorial, pois a ideia surgiu quando implementei ele.
A solução: a biblioteca
PDFBox é uma ferramenta Java de código aberto para trabalhar com documentos PDF. Essa API permite a criação de novos documentos PDF, manipulação de documentos existentes e a capacidade de extrair o conteúdo de documentos.
Vamos baixar o DOU da forma que normalmente seria possível, e depois, usar essa API para juntar os arquivos PDF baixados em um único arquivo.
Iniciando o projeto
Neste artigo, não vou falar sobre como instalar o
NetBeans. Se você não sabe o que é isso ou usa outra IDE Java, veja aqui:
...e se encontrar problemas, veja os posts aqui do VOL da galera que já "bateu cabeça".
Partindo do principio que você tem o NetBeans instalado e funcionando, inicie um novo projeto como abaixo, desmarque a opção
criar classe principal:
Faça download do JAR do
PDFBox e salve em uma pasta de sua preferência.
Adicione a biblioteca ao projeto. Crie um pacote chamado
pacote1 a adicione um formulário JFrame a ele. Sugiro nomear o JFrame de
frame.
Adicione 3 JPanels, 2 JTextFields, 6 JCheckBoxes, 2 JButtons, 3 JLabels, 1 JProgressBar e formate os componentes, conforme abaixo:
Para termos mais facilidade na hora de implementar o código Java em si do projeto, sugiro você ir adicionando e formatando os componentes na sequência, de forma que fiquem com os nomes padrão e dispostos na sequência em que foram adicionados ao JFrame.
Depois de adicionados e formatados os componentes visuais, vá até o código fonte do projeto e deixe-o com os imports abaixo:
- import java.io.BufferedInputStream;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.List;
- import javax.swing.JFileChooser;
- import javax.swing.JOptionPane;
- import javax.swing.SwingWorker;
- import org.apache.pdfbox.util.PDFMergerUtility;