Pular para o conteúdo

PDFBox - Aplicativo Java para baixar o DOU completo

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. 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.
Pedro Ferrarezi ferrarezux
Hits: 18.631 Categoria: Java Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Introdução / Projeto

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:
Linux: PDFBox - Aplicativo Java para baixar o DOU completo
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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:
Linux: PDFBox - Aplicativo Java para baixar o DOU completo

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;

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução / Projeto
   2. Codificação final

Monitorando produtos no ML com Python 3 via BeautifulSoup

Windowbuilder, o plugin do Google para trabalhar com interface gráfica no Eclipse

JABACO => Java + Visual Basic 6

Java Native Interface

Configurando e-Gen + Tomcat + JSDK

Trabalhando com classes e métodos em Java (parte 2)

#1 Comentário enviado por removido em 20/11/2013 - 14:33h
Chatinho pra configurar.
Mas depois, vai! E muito bem.

Facilitou a vida!
#2 Comentário enviado por Lisandro em 21/11/2013 - 07:24h
Gostei muito. Valeu!
#3 Comentário enviado por Buckminster em 02/12/2013 - 01:52h
Muito bom. Parabéns.

Vou testar.
#5 Comentário enviado por leorocco em 17/02/2014 - 15:00h
Eles mudaram a URL da página. Resolvei o problema alterando a variável "Link". Porém os PDFs estão vindo corrompidos, impossível de visualizar. Estou usando a versão 1.8.3 do PDFBox. Será que é isso? Muito obrigado por compartilhar :]
#6 Comentário enviado por Alexsander71 em 16/01/2015 - 17:42h

Está muito TOP !! Mas queria uma ajudinha mais... Preciso baixar o DOU de um período, tipo... queria baixar todos os DOU do mês de NOV / 2014. Alguém pode dar uma ajuda!?

Contribuir com comentário

Entre na sua conta para comentar.