[Cascavel-pm] Conversao em PDF

Carlos Silva carlos.silva.gyn em gmail.com
Segunda Novembro 7 17:57:19 PST 2005


Prezaados colegas,

Estou tentando fazer uma conversao de arquivo HTMl para PDF e não estou
conseguindo.

Esse script baixa uma ou mais paginas HTML passadas como parametro e depois
a transforma em PDF mas a conversão nao esta funcionando .

Alguem poderia me ajudar ????


 *#!/usr/bin/perl*

*use* IO::Socket;
*#use PDF::FromHTML;*
*#use HTML::Parse;*
*#use PDF::Template;*
*#use HTML::Tagset;*
*#use PDF::Writer;	*
*#use HTML::TreeBuilder;*


$count = 0;
$TotalParametros = 0;
$Site = *"*www.faqs.org <http://www.faqs.org>*"*;
$HomeUsuario = *"*/home/vt_integrada_perl*"*; *#diretorio onde vai ser
baixado o arquivo HTML*
$NovoDir;
mkdir *"*/home/vt_integrada_perl*"*; *#cria diretorio
home/vt_integrada_perl onde vai ser baixado as paginas HTML*
*foreach* $arg(@ARGV) {
   $count++;
}
*if*($count==0){
   printf(*"*Digite o nome do script e o numero das RFC separadas por
espaco\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);
   $ListaDownloads[$count] = *"*/rfcs/rfc*"* . $ARGV[$count] . *"*.html*"*;
   $NovoDir = $HomeUsuario . *"*/*"* . $ARGV[$count];
   $NovoArquivo = $NovoDir . *"*/*"* . $ARGV[$count] . *"*.html*"*;
  *# &convertePdf;	*
   mkdir($NovoDir);




};

*sub *convertePdf {
*my* $HTML  = *'*caminho_para_o_arquivo_html*'*;
*my* $PDF   = *'*caminho_para_o_arquivo_pdf*'*;
*my* $FONTE = *'*caminho_para_fonte_truetype*'*;

*my* $pdf = PDF::FromHTML->new( encoding => *'*utf-8*'* );
   $pdf->load_file($HTML);
   $pdf->convert(
       Font => $FONTE,
       LineHeight => 10,
       Landscape => 1,
   );
   $pdf->write_file($PDF);
}
*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*"*;

}


Outro detalahe tb precisaria converte-lo para TXTe PS mas realemte neste
caso estou perdido

Um abraço

Carlos Silva
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20051108/8c77832c/attachment.html


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