PDF completo com todas as páginas do Diário Oficial do Estado de Goiás
Publicado por Ademir Ferreira Furtado (última atualização em 11/07/2016)
[ Hits: 3.249 ]
Homepage: diariooficialhoje.com.br
O script foi feito para facilitar a vida de quem precisa baixar diariamente o Diário Oficial do Estado de Goiás. Está simplificado e comentado, contendo a parte essencial e suficiente para o que se propõe. Basta executá-lo no prompt de comando ou chamá-lo em um script shell.
Foi feito para ser executado sem nenhuma dependência externa além da linguagem Perl e dos módulos usados: DateTime, LWP::Simple e CAM::PDF. Estes módulos podem ser instalados facilmente digitando no prompt:
cpan DateTime LWP::Simple CAM::PDF
Caso surja alguma dúvida na instalação dos módulos, consulte esta página: http://www.cpan.org/modules/INSTALL.html
Com os módulos instalados, é só colocar o script para funcionar. Ex.: para baixar o Diário Oficial do dia, basta digitar no prompt de comando:
perl DOEGO.pl
que ele irá baixar todas as páginas do Diário Oficial do dia de hoje e criar um PDF contendo todas elas.
Para baixar o Diário Oficial de outra data, basta digitar (Ex:29/06/2016):
perl DOEGO.pl 29/06/2016
Obs.: é necessário ter a linguagem PERL instalada, verifique o site http://strawberryperl.com/ ,se não estiver usando o Linux.
#!/usr/bin/perl
$|=1; # variável que indica para fazer "flush" após cada operação de escrita
my $dmy= shift; # recebe a data desejada passado como parâmetro
if(defined($dmy)&& $dmy!~/^\d{2}\/\d{2}\/\d{4}$/) { die "Formato de data inválido.\n\nUso: \n\tperl DOEGO.pl dd/mm/aaaa\n"} #verifica o formato da data
use DateTime;
my $dt=DateTime->now; # recupera a data do sistema
$dmy=$dt->dmy("/") unless defined($dmy); # string da data no formato dd/mm/yyyy
$dmy=~/^(\d{2})\/(\d{2})\/(\d{4})$/; # captura (com os parênteses) o dia, mes e ano nas variáveis $1,$2 e $3
my $day=sprintf("%02d", $1); # formata a variável com dois dígitos e zeros à esquerda
my $mon=sprintf("%02d", $2);
my $year=sprintf("%04d", $3);
print "Data: $dmy\n";
use LWP::Simple; # módulo para fazer as requisições http de forma simples
my $i=1; # variável utilizada para contar as páginas em sequência
while ($i>0) {
my $pag=sprintf("%03d", $i);
if (is_success(getstore("http://www.abc.go.gov.br/arquivos/diariooficial/$year/$mon/$day/".$pag.".pdf",$pag.".pdf"))) {
print "pag. $pag (ok)\n" ; # faz a requisição e armazena
if ( $i == 1) { # se for a primeira página...
use CAM::PDF;
$bigpdf = CAM::PDF->new("$pag.pdf"); # a primeira página será a base para anexar os outros pdf
} else {
my $anotherpdf = CAM::PDF->new("$pag.pdf"); # demais páginas pdf
$bigpdf->appendPDF($anotherpdf); # anexadas à primeira
}
$i++;
} else { $i=0 }
unlink("$pag.pdf"); # apaga as páginas individuais temporárias
}
if (defined($bigpdf)) { # se o arquivo foi criado
$bigpdf->cleanoutput("DOEGO-$year$mon$day.pdf"); #salva o pdf com todas as páginas
system("start DOEGO-$year$mon$day.pdf") if -e "DOEGO-$year$mon$day.pdf"; #no windows esta linha inicia o visualizador padrão para PDF se ele foi criado
} else {
print "DOEGO de $dmy não disponível!\n" unless -e "DOEGO-$year$mon$day.pdf"; #avisa se o caderno não está disponível
}
Upload de múltiplos arquivos para Imageshack.us
Descubra se seu e-mail ou conta foi "pwned"
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









