[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