Jump to content


Photo

Pdflib!


  • Faça o login para participar
5 replies to this topic

#1 Wagner Bianchi

Wagner Bianchi

    SQL MAGAZINE

  • Usuários
  • 323 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte/MG
  • Interesses:MySQL, PHP, XML, JAVA SCRIPT, DHTML, LINUX, C, C++

Posted 17/05/2005, 12:40

Olá Galera,


Seguinte, estou montando um pdf para ser gerado com a PDFLib (www.pdflib.com).
Baixei os arquivos, o manual, mas não consigo adicionar esta biblioteca e nem fazer funfar!

Alguém pode me ajudar????
O código pra gerar pdf com ess biblioteca:

<?php

    //**********CONFIGURAÇÕES DO PROGRAMA**********

    //Documento
    $largura = 842;
    $altura = 595;
    $margem_vertical = 30;
    $margem_horizontal = 30;
    $tamanho_fonte = 14;
    $tamanho_fonte_titulo = 20;
    $titulo = "AQUI O TÍTULO DO DOCUMENTO PDF";
   
    //Banco de Dados
    $servidor = "localhost";
    $usuario = "root";
    $senha = "";
    $banco = "teste";

    //Consulta SQL que irá gerar o relatório
    $consulta = "select * from livros order by titulo";
    $colunas_resultantes = array ("isbn", "titulo", "autor", "preco");

    //Tabela gerada no PDF
    $texto_colunas = array ("isbn", "titulo", "autor", "preco");
    $largura_coluna = array (90, 360, 280, 150);

    //**********NÃO ALTERE DAQUI EM DIANTE**********

    //Executa a consulta
    $con = mysql_conect ($servidor, $usuario, $senha);
          msql_select_db ($banco);
    $result = mysql_query($consulta);
    $total = mysql_numrows($result);
      if($total==0)
      {
          mysql_close($con);
  echo "O relatório não foi gerado porqeu a consulta não retornou registros!"
  exit;
      }


    //Cria o PDF - sei que cria sim. . .vai dar erro denovo!
    $p = pdf_new();
    pdf_open_file($p);

    //Cálculos
    $altura_celula = "$tamanho_fonte+3";
    $altura_titulo = "$tamanho_titulo_fonte+3";
    $altura_tabela = $altura - 2*$margem_vertical;
    $linhas_por_pagina = intval (($altura-$altura_titulo)/$altura_celula)-1; //tira 1 devido ao cabeçalho
    $num_paginas = ceil ($total/$linhas_por_pagina);
    $linha_atual = 0;

    //Gera as páginas
    for($i=0; $i<$num_paginas; $i++)
    {

        //Cria nova página
pdf_begin_page ($p, $largura, $altura);

//Título relatorio
        $font = pdf_finfont($p, "Times-Bold", "winassi", 0);
  pdf_setfont($p, $font, $tamnho_font_titulo);
        $posy = $altura - $margem_vertical;
$posx = $margem_horizontal;
$pag_atual = $i+1;
  pdf_show_xy($p, $titulo . " (página $pag_atual)", $posx, $posy);
       
        //Cria cabeçalho da tabela em negrito
$font = pdf_findfont($p, "Times-Bold", "winassi", 0);
  pdf_setfont($p, $font, $tamanho_fonte);
        $posy -= $altura_titulo;
$posx = $margem_horizontal;

    pdf_move($p, $posx, $posy-3)
    pdf_lineto($p, $largura-$marge_horizontal, $posy-3);
    pdf_stroke($p);

        for($k=0; $k<sizeof($texto_colunas); $k++)
{
    pdf_show_xy($p, $texto_colunas[$k], $posx, $posy);
    $posx += $largura_coluna[$k];
}
           
//Tira o negrito da fonte
$font = pdf_findfont($p, "Times-Roman", "winansi", 0);
pdf_setfont($p, $font, $tamanho_fonte);

//Escreve os registros
$inicio = $linha_atual;
$fim = $linha_atual + $linhas_por_pagina;
if($fim > $total)
          $fim = $total;

        for($j=$inicio; $j<$fim; $j++)
{
      $linha_atual = $j;
      $posx = $margem_horizontal;                                 
      $posy -= $altura_celula;                           

      for($k=0; $k<sizeof($colunas_resultantes); $k++)
      {
          $valor = mysql_result, $linha_atual, $colunas_resultantes[$k];
  pdf_show_xy($p, $valor, $posx, $posy);
  $posx += $largura_coluna[$k];

      }

      $linha_atual++;

  }
        //Encerra a página
  pdf_end_page($p);
    }
    mysql_close($con);
    //Encerra o documento PDF
    pdf_set_parameter($p, "openaction", "fitpage");
    pdf_close($p);
    $buf = pdf_get_buffer($p);
    $tamanho = strlen($buf);
    header("Content-type:application/pdf");
    header("Content-Lenght:$tamanho");
    header("content-Disposition:inline, filename=relatorio.pdf");
    echo $buf;
    pdf_delete($p)
   
?>



Se puderem me ajudar. . .o lance é pra que essa biblioteca instalada reconheça a função "pdf_new()". . .

Obrigado!!!
<?php

$know_that = "para aprender";
$reason = "DEUS";
$greeting = "Muito prazer, sou Wagner Bianchi!";
$mail = "wagnerbianchi@yahoo.com.br";
echo "Tenha " . $reason . " e humildade " . $know_that . "!<BR>";
echo "$greeting<BR>";
echo "$mail<BR>";

?>

#2 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 17/05/2005, 13:05

ola...
a instalaçao é no windows?
se for, vc tem que colocar a dll no diretorio das dlls de extensao do php(geralmente c:\php\ext)
e
habilita-la no php.ini:
extension=nome_da_ext.dll

apos isso, é preciso dar um STOP no apache+php e depois um START, para que a alteraçao faça efeito

no linux é mais complicado...

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#3 Wagner Bianchi

Wagner Bianchi

    SQL MAGAZINE

  • Usuários
  • 323 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte/MG
  • Interesses:MySQL, PHP, XML, JAVA SCRIPT, DHTML, LINUX, C, C++

Posted 17/05/2005, 15:27

Cara, fiz o que vc disse mas nada aconteceu. . .será que, eu uso o php + apache + mysql tudo instalado na mão mesmo na minha máquina de trabalho. . .será isso??

A função definida '$pdf_new()' não funcionou, retornou o seguinte erro:

Fatal error: Call to undefined function: pdf_new() in . . .


Obrigado!!

Edição feita por: Wagner Bianchi, 17/05/2005, 15:30.

<?php

$know_that = "para aprender";
$reason = "DEUS";
$greeting = "Muito prazer, sou Wagner Bianchi!";
$mail = "wagnerbianchi@yahoo.com.br";
echo "Tenha " . $reason . " e humildade " . $know_that . "!<BR>";
echo "$greeting<BR>";
echo "$mail<BR>";

?>

#4 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 17/05/2005, 18:27

entao cara... vc colocou sua dll lah na pastinha?

procurou a parte daz extensoues e colocou certinho o
extension=nome_da_ext.dll
SEM o ; na frente?

no caso é a libpdf_php.dll, certo?

note que no pacote que vc baixa lah do site, existem 3 versoes dentro do zip, uma pra cada PHP
vc tem que colocar a versao correspondente ao seu...



se vc vez isso e reestartou o apache(e o php junto), deveria rolar...

infelizmente eu nao tenho mais como testar aqui, pois coloquei tudo que é de servidor na outra maquina, rodando linux


<_<

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#5 Wagner Bianchi

Wagner Bianchi

    SQL MAGAZINE

  • Usuários
  • 323 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte/MG
  • Interesses:MySQL, PHP, XML, JAVA SCRIPT, DHTML, LINUX, C, C++

Posted 18/05/2005, 09:16

Faaala Stone,


Pow cara. . .BRIGADU!!!
Vou seguir teus conselhos e procurar relamente a versão 'desta bagaça'. . .:D


Abraço cara!!

DEUS Abençõe!


Wagner Bianchi
<?php

$know_that = "para aprender";
$reason = "DEUS";
$greeting = "Muito prazer, sou Wagner Bianchi!";
$mail = "wagnerbianchi@yahoo.com.br";
echo "Tenha " . $reason . " e humildade " . $know_that . "!<BR>";
echo "$greeting<BR>";
echo "$mail<BR>";

?>

#6 helio_ceara

helio_ceara

    Turista

  • Usuários
  • 43 posts
  • Sexo:Não informado

Posted 24/12/2005, 16:45

este topioc eh um pouco antigo mas tou com o mesmo problema do wagner, queria saber se voce conseguiu resolver?
fiz tudo bem direitinho..coloquei a dll na pasta de extensoes e descomentei no php.ini mas sempre da o erro nao reconhecendo a função pdf_new




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq