[Cascavel-pm] HTML 2 PDF

Ricardo Arrais ric_arrais em hotmail.com
Quinta Novembro 10 19:19:18 PST 2005


       Estou terminando um trabalho aademico que requer um codigo que baixe 
de uma pagina especifica as informações dos argumentos que eu colocar na 
execução do Scrip   (perl nomedoprograma.pl 1023 1023) onde o primeiro 
argumento é o nome da RFC e o segundo o nome do diretorio a ser criado para 
armazenar para armazenar o mesmo, depois do download devo transformar o 
arquivo em pdf, extrair do mesmo todos os links colocar em um txt, contar as 
letras, contar as palavras e colocar >> o resultado dentro do arquivo txt
     Bom o profeeessor pediu pra usar sockets .... A parte de conexão dei 
conta, a parte do PDF SÓ ESTÁ QUASE pronto....
    pOR FAVOR façam O DEBUG E POSTEM O RESULTADO!!!! VI QUE OUTROS USUARIOS 
ESTÃO COM O MESMO PROBLEMA...

use IO::Socket;
use PDF::Html

$count = 0;
$TotalParametros = 0;
$Site = "www.faqs.org";
$HomeUsuario = "$ENV{'HOME'}";
$NovoDir;

foreach $arg(@ARGV) {
   $count++;
}
if($count==0){
   printf("Entre com o nome do arquivo e com o nome da rfc a ser 
baixada\n");
}
else{
   $TotalParametros = $count;
}

for($count=0;$count<$TotalParametros;$count++){
   $ListaDownloads[$count] = "/rfcs/rfc" . $ARGV[$count] . ".html";
   $NovoDir = $HomeUsuario . "/" . $ARGV[$count];
   $NovoArquivo = $NovoDir . "/" . $ARGV[$count] . ".html";
   mkdir($NovoDir);
   &BaixarPagina($ListaDownloads[$count], $NovoArquivo);


AQUI TENTEI FAZER UMA SUBROTINA MAS NUM DEU CERTO ENTAUM TENTEI FAZER ELE 
SER PARTER DO CODIGO PRINCIPAL...

Estou tb tentando aprovceitar as variaveis de cima para path de leitura e 
grAcao do arquivo.

#load_file {
$pdf = PDF::FromHTML->new( encoding => 'utf-8' );
    $pdf->load_file($NovoDir . "/" . $NovoArquivo . ".html" );
    $pdf->convert(
        #Font => '/path/to/font.ttf',
        LineHeight => 10,
        Landscape => 1,
    );

    $pdf->write_file($NovoDir . "/" . $ARGV[$count] . ".pdf" );
#}

};

ESSA  SUB É PRA BAIXAR A PAGINA,

sub BaixarPagina{
   my $enderecosite = $_[0];
   my $nmarquivo = $_[1];
   my $port = "80";
   my $strComando = "GET $enderecosite HTTP/1.1\nHost: $Site\nUser-Agent: 
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050725\n\n";

   print $strComando;
   my $sock = new IO::Socket::INET (
                                    PeerAddr => $Site,
				    PeerPort => $port,
  				    Proto => 'tcp',
				   );
   die "Nao foi possivel conectar... $Site" unless $sock;
   $sock->autoflush(1);

   print $sock $strComando;

   my $buf="";
   while($line=<$sock>){
      $buf.=$line;
   }

   close($sock);

#   print $buf;          exibe o conteudo html
   open(SITE,">>$nmarquivo");
   print SITE $buf;
   close(SITE);
   print "Gravado em $nmarquivo";


       Ricardo Arrais Silva
       MCP, MCSA, MCSE
Analista de segurança de redes
Cultura - O maior provedor do Centro-oeste




Mais detalhes sobre a lista de discussão Cascavel-pm