Gerando documento PDF em PHP
Neste artigo estarei mostrando como gerar documentos no formato PDF em PHP com consulta em banco de dados. A idéia é mostrar um pouco do que é possível se fazer com esta API e não gerar um relatório bonito, pois isso ficará a encargo de cada um.
[ Hits: 169.564 ]
Por: Luis Carlos de Brito em 18/10/2004
Criando um banco para posterior consulta
<?
$conexao = mysql_connect('host','user','password');
$sql = mysql_create_db('Estudo',$conexao);
mysql_close($conexao);
?>
Agora vamos criar a tabela:
<?php
$conexao = mysql_connect('host','user','password');
mysql_select_db('Estudo',$conexao);
$sql = 'CREATE TABLE estudo(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nome varchar(30), endereco varchar(30), telefone varchar(10))';
mysql_query($sql,$conexao);
mysql_close($conexao);
?>
Também criei um form para entrar com alguns dados:
<?php
if ($acao=='cadastrar')
{
$conexao = mysql_connect('host','user','password');
mysql_select_db('Estudo',$conexao);
$sql = "INSERT INTO estudo VALUES('','$nome','$endereco','$telefone')";
mysql_query($sql,$conexao);
mysql_close($conexao);
}
?>
<html>
<body>
<form method="POST" action="<? echo $PHP_SELF; ?>">
<INPUT TYPE="hidden" name="acao" value="cadastrar">
<table>
<tr>
<td>
<b>Nome</b>
</td>
<td>
<INPUT TYPE="text" name="nome">
</td>
</tr>
<tr>
<td>
<b>Endereço</b>
</td>
<td>
<INPUT TYPE="text" name="endereco">
</td>
</tr>
<tr>
<td>
<b>Telefone</b>
</td>
<td>
<INPUT TYPE="text" name="telefone">
</td>
</tr>
<tr>
<td>
<INPUT TYPE="submit" value="Enviar">
</td>
<td>
<INPUT TYPE="reset" value="Limpar">
</td>
</tr>
</table>
</form>
</body>
</html>
Página anterior Próxima página
Páginas do artigo
1.
Baixando os arquivos necessários
2.
Gerando um arquivo simples
3. Criando um banco para posterior consulta
4.
Gerando PDF a partir de consulta SQL
5.
Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada
PHP-GD retorna status do MSN Messenger , Skype e GTalk
Instalando e configurando Magento E-commerce com Apache2 no openSUSE 11.3 64 bits do zero
Wordpress: Hospede blogs no seu Linux
Ambiente LAMP no Debian
Plugin Moip Assinaturas para CakePHP - Conheça e aprenda a usar
Comentários
Poxa, muito legal esse artigo! Alias, isso vale para outros tipos de exibicao de texto, como o Ghostscript?
resultado:
%PDF-1.3 %âãÏÓ 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R 9 0 R ] /Count 2 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Creator (R and OS php pdf writer,
http://www.ros.co.nz) /CreationDate (D:20041018) >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 105 >> stream xoeOE1@@{§x%ÍúldW+¡¢ÿb?!a4Nì6´)¦TMo/oo*FNZoeK¤´&°CÚdÈH"Y?¸]¯{"Èáä"×_~ü®<ìtÏз xCÍQ8ê?ÁX«OEù¿î7 endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Page /Parent 3 0 R /Contents 10 0 R >> endobj 10 0 obj << /Filter /FlateDecode /Length 180 >> stream xoeUÎÁªÂ0н_1î$&i1}[QqÙE~ Ök"GmJsf¿o"?TMÕa{+a´D#¥¨* {Åö¤ ¤(û¬¬ %)ܧ?À"î3ÃÇ8®aÿq´<¢©Æ^æ¯`)½SõWS>É1¬=oep?]¾ÓÈÈ)OE=Ús<Á?}v=ý~;¡ëÆ"§µþsúcrDO#Í/80?=Üä:Oð4Lĺ~çDË7ûf/E_ endstream endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000286 00000 n 0000000315 00000 n 0000000420 00000 n 0000000483 00000 n 0000000661 00000 n 0000000768 00000 n 0000000832 00000 n trailer << /Size 11 /Root 1 0 R /Info 5 0 R >> startxref 1086 %%EOF
Mensagem
resultado:
%PDF-1.3 %âãÏÓ 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R 9 0 R ] /Count 2 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Creator (R and OS php pdf writer, http://www.ros.co.nz) /CreationDate (D:20041018) >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 105 >> stream xoeOE1@@{§x%ÍúldW+¡¢ÿb?!a4Nì6´)¦TMo/oo*FNZoeK¤´&°CÚdÈH"Y?¸]¯{"Èáä"×_~ü®<ìtÏз xCÍQ8ê?ÁX«OEù¿î7 endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Page /Parent 3 0 R /Contents 10 0 R >> endobj 10 0 obj << /Filter /FlateDecode /Length 180 >> stream xoeUÎÁªÂ0н_1î$&i1}[QqÙE~ Ök"GmJsf¿o"?TMÕa{+a´D#¥¨* {Åö¤ ¤(û¬¬ %)ܧ?À"î3ÃÇ8®aÿq´<¢©Æ^æ¯`)½SõWS>É1¬=oep?]¾ÓÈÈ)OE=Ús<Á?}v=ý~;¡ëÆ"§µþsúcrDO#Í/80?=Üä:Oð4Lĺ~çDË7ûf/E_ endstream endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000286 00000 n 0000000315 00000 n 0000000420 00000 n 0000000483 00000 n 0000000661 00000 n 0000000768 00000 n 0000000832 00000 n trailer << /Size 11 /Root 1 0 R /Info 5 0 R >> startxref 1086 %%EOF
Acredito que faltou setar o contentType para pdf!
A princípio, é muito simpls criar PDF "on the fly" no php. Já no JSP... que horror...
Mensagem
Acredito que faltou setar o contentType para pdf!
A princípio, é muito simpls criar PDF "on the fly" no php. Já no JSP... que horror...
Bom estou tentando gerar um pdf a partir de dados gravados em session, tirando as sessions, somente as imagens e textos aparecem segue codigo para analise.:
for($i=0; $i<$_SESSION['total']; $i++)
{
$vlrtot = $_SESSION["qtd[$i]"]*$_SESSION["preco[$i]"];
$pdf->ezTable($_SESSION["produto[$i]"], $cols,'AGENDA',$optionsTable);
$pdf->ezTable($_SESSION["qtd[$i]"], $cols,'AGENDA',$optionsTable);
$pdf->ezTable($_SESSION["preco[$i]"], $cols,'AGENDA',$optionsTable);
$pdf->ezTable($_SESSION["final[$i]"], $cols,'AGENDA',$optionsTable);
}
por favor alguem me de um help.
Fagner M. Vila
fagnervila@hotmail.com
Mensagem
Bom estou tentando gerar um pdf a partir de dados gravados em session, tirando as sessions, somente as imagens e textos aparecem segue codigo para analise.:
for($i=0; $i<$_SESSION['total']; $i++)
{
$vlrtot = $_SESSION["qtd[$i]"]*$_SESSION["preco[$i]"];
$pdf->ezTable($_SESSION["produto[$i]"], $cols,'AGENDA',$optionsTable);
$pdf->ezTable($_SESSION["qtd[$i]"], $cols,'AGENDA',$optionsTable);
$pdf->ezTable($_SESSION["preco[$i]"], $cols,'AGENDA',$optionsTable);
$pdf->ezTable($_SESSION["final[$i]"], $cols,'AGENDA',$optionsTable);
}
por favor alguem me de um help.
Fagner M. Vila
fagnervila@hotmail.com
Este erro esta dando no internet explore.
%PDF-1.3 %âãÏÓ 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Creator (R and OS php pdf writer,
http://www.ros.co.nz) /CreationDate (D:20050508) >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 74 >> stream xoeãr Q06Ð300P0³4Ó3²4PIQÐw3T04 +"¤)(hx¤æääk*"d)¸+p!4~ZèTMaÕz_""¢Õ,àV endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000280 00000 n 0000000309 00000 n 0000000414 00000 n 0000000477 00000 n 0000000623 00000 n trailer << /Size 9 /Root 1 0 R /Info 5 0 R >> startxref 730 %%EOF
Mas no firefox não. Alguem sabe me dizer o que fazer para funcionar nele?
Obrigado a todos que responderem
Mensagem
Este erro esta dando no internet explore.
%PDF-1.3 %âãÏÓ 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Creator (R and OS php pdf writer, http://www.ros.co.nz) /CreationDate (D:20050508) >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 74 >> stream xoeãr Q06Ð300P0³4Ó3²4PIQÐw3T04 +"¤)(hx¤æääk*"d)¸+p!4~ZèTMaÕz_""¢Õ,àV endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000280 00000 n 0000000309 00000 n 0000000414 00000 n 0000000477 00000 n 0000000623 00000 n trailer << /Size 9 /Root 1 0 R /Info 5 0 R >> startxref 730 %%EOF
Mas no firefox não. Alguem sabe me dizer o que fazer para funcionar nele?
Obrigado a todos que responderem
Bitcho ... funfou beleza .... só que eu tenho o seguinte do ..while:
do {
echo $row_rsLISTAITENS['detalhe_item'];
echo $row_rsLISTAITENS['detalhe_codpro'];
echo $row_rsLISTAITENS['detalhe_vlr_total'];
$totalP = $row_rsLISTAITENS['detalhe_vlr_total'];
$total += $totalP;
} while ($row_rsLISTAITENS = mysql_fetch_assoc($rsLISTAITENS));
echo 'Total do Pedido',number_format($total, 2, ',', '.');
Só com o While ue vc colocou ai, lista todos os itens da tabela ... como eu poderia adaptar este meu do...while para o pdf ??
Obrigado
Villas
villas2@terra.com.br
Mensagem
Bitcho ... funfou beleza .... só que eu tenho o seguinte do ..while:
do {
echo $row_rsLISTAITENS['detalhe_item'];
echo $row_rsLISTAITENS['detalhe_codpro'];
echo $row_rsLISTAITENS['detalhe_vlr_total'];
$totalP = $row_rsLISTAITENS['detalhe_vlr_total'];
$total += $totalP;
} while ($row_rsLISTAITENS = mysql_fetch_assoc($rsLISTAITENS));
echo 'Total do Pedido',number_format($total, 2, ',', '.');
Só com o While ue vc colocou ai, lista todos os itens da tabela ... como eu poderia adaptar este meu do...while para o pdf ??
Obrigado
Villas
villas2@terra.com.br
Bem o que vc poderia fazer é jogar todos esse valores num array
$data[] = array("Item"=>$row_rsLISTAITENS['detalhe_item'], "Codigo"=>$row_rsLISTAITENS['detalhe_codpro'],"valor"=> $row_rsLISTAITENS['detalhe_vlr_total'],"Total"=>$total);
depois passa para o ezTable esse valor ($data), sem o $cols que tem no exemplo, por que os cabeçalhos seriam já colocados no array, depois vc colcoa no final um campo com o total da compra, se tiver divida manda um email que tentarei fazer um exemplo pra ti, blz? abraços
Mensagem
Bem o que vc poderia fazer é jogar todos esse valores num array
$data[] = array("Item"=>$row_rsLISTAITENS['detalhe_item'], "Codigo"=>$row_rsLISTAITENS['detalhe_codpro'],"valor"=> $row_rsLISTAITENS['detalhe_vlr_total'],"Total"=>$total);
depois passa para o ezTable esse valor ($data), sem o $cols que tem no exemplo, por que os cabeçalhos seriam já colocados no array, depois vc colcoa no final um campo com o total da compra, se tiver divida manda um email que tentarei fazer um exemplo pra ti, blz? abraços
Eu experimentei e funcionou numa beleza só que eu queria saber se existe alguma documentação...
Mensagem
Eu experimentei e funcionou numa beleza só que eu queria saber se existe alguma documentação...
Minha gente isto é maravilhoso faz-se muita coisa e com facilidade...Beleza
Mensagem
Minha gente isto é maravilhoso faz-se muita coisa e com facilidade...Beleza
Olá, estou muito interessado em usar esse recurso, mas gostaria de saber como proceder para gerar um pdf a partir de documento do word gravado no servidor.
Agradeço qualquer informaçao!!
Mensagem
Olá, estou muito interessado em usar esse recurso, mas gostaria de saber como proceder para gerar um pdf a partir de documento do word gravado no servidor.
Agradeço qualquer informaçao!!
priemeiro vc precisa ler o conteudo desse word e jogar para funcao que escreve pdf ou vc pode usar o fop para gerar pdf, vc criaria um xml com o conteudo do word e depois criaria um arquivo xsl para gerar o pdf com base no conteudo do xml, fop é gratuito, da fundacao apache
Mensagem
priemeiro vc precisa ler o conteudo desse word e jogar para funcao que escreve pdf ou vc pode usar o fop para gerar pdf, vc criaria um xml com o conteudo do word e depois criaria um arquivo xsl para gerar o pdf com base no conteudo do xml, fop é gratuito, da fundacao apache
Ola gostaria de saber como eu pego as informações que eu enviei por um form ?
<?php
$_POST[esse];
// chama a classe 'class.ezpdf.php' necessária para se gerar o documento
include "class.ezpdf.php";
// instancia um novo documento com o nome de pdf
$pdf = new Cezpdf();
// seta a fonte que será usada para apresentar os dados
//essas fontes são aquelas dentro do diretório GeraPDF/fonts
$pdf->selectFont('fonts/Helvetica.afm');
// chama o método ezText e passa o texto que deverá ser apresentado no documento
//o numero após o texto se refere ao tamanho da fonte
$pdf->ezText($esse);
// gera o PDF
$pdf->ezStream();
?>
por favor me ajude!!!
optero@hotmail.com
optero@gmail.com
optero@uggy.com.br
=======================================
Mil desculpas pessoal funcionou era meu global do php que estava off
Mensagem
Ola gostaria de saber como eu pego as informações que eu enviei por um form ?
<?php
$_POST[esse];
// chama a classe 'class.ezpdf.php' necessária para se gerar o documento
include "class.ezpdf.php";
// instancia um novo documento com o nome de pdf
$pdf = new Cezpdf();
// seta a fonte que será usada para apresentar os dados
//essas fontes são aquelas dentro do diretório GeraPDF/fonts
$pdf->selectFont('fonts/Helvetica.afm');
// chama o método ezText e passa o texto que deverá ser apresentado no documento
//o numero após o texto se refere ao tamanho da fonte
$pdf->ezText($esse);
// gera o PDF
$pdf->ezStream();
?>
por favor me ajude!!!
optero@hotmail.com
optero@gmail.com
optero@uggy.com.br
=======================================
Mil desculpas pessoal funcionou era meu global do php que estava off
alguém já tentou colocar a opção que permite a página ficar na Horizontal
Mensagem
alguém já tentou colocar a opção que permite a página ficar na Horizontal
Puts cara! valeu mesmo fera! tu tá de parabéns! usei esse exemplo aqui pra eu criar uma aplicação aqui e ficou show de bola! valeu mesmo cara! :)
Mensagem
Puts cara! valeu mesmo fera! tu tá de parabéns! usei esse exemplo aqui pra eu criar uma aplicação aqui e ficou show de bola! valeu mesmo cara! :)
Bom estou com problemas de acentuacao ao exportar para pdf, andei pesquisando bastante antes de perguntar, jah estou quebrando a cabeça a alguns dias, se puder me ajudar, agradeço. Os acentos e cedilhas, quando exporto, ficam com caracteres muito loucos. =,.(
Tx desde jah, Mace
Mensagem
Bom estou com problemas de acentuacao ao exportar para pdf, andei pesquisando bastante antes de perguntar, jah estou quebrando a cabeça a alguns dias, se puder me ajudar, agradeço. Os acentos e cedilhas, quando exporto, ficam com caracteres muito loucos. =,.(
Tx desde jah, Mace
Ae alguem sabe como gerar o pdf em modo paisagem
[]s
leandroviana@gmail.com
Mensagem
Ae alguem sabe como gerar o pdf em modo paisagem
[]s
leandroviana@gmail.com
//mostra em formato paisagem
$pdf = new Cezpdf('a4','landscape');
Mensagem
//mostra em formato paisagem
$pdf = new Cezpdf('a4','landscape');
Oi
Quando leio de um banco de dados um campo com por exemplo Gonçalves no pdf aparece Hugo Gonçalves,
Alguém pode me ajudar
Miguel
Mensagem
Oi
Quando leio de um banco de dados um campo com por exemplo Gonçalves no pdf aparece Hugo Gonçalves,
Alguém pode me ajudar
Miguel
Estou tendo problemas ao gerar pdf.
Com o código abaixo, me é gerado um pdf que os textos estão sobrepostos, ou seja tudo o que eu escrevo fica no mesmo lugar. Quando uso a função addText, o mesmo não acontece.
<?php
include("../pdfClassesAndFonts_009e/class.ezpdf.php");
$pdf = new Cezpdf();
$pdf->ezText("\n\nPQP");
$pdf->ezText("\n\nPQPqqqq");
$pdf->addText(200,200,10,"AA");
$pdf->stream();
?>
Alguem pode me ajudar?
[]s
Mensagem
Estou tendo problemas ao gerar pdf.
Com o código abaixo, me é gerado um pdf que os textos estão sobrepostos, ou seja tudo o que eu escrevo fica no mesmo lugar. Quando uso a função addText, o mesmo não acontece.
<?php
include("../pdfClassesAndFonts_009e/class.ezpdf.php");
$pdf = new Cezpdf();
$pdf->ezText("\n\nPQP");
$pdf->ezText("\n\nPQPqqqq");
$pdf->addText(200,200,10,"AA");
$pdf->stream();
?>
Alguem pode me ajudar?
[]s
Pessoal boa noite:
Estou com um probleminha sobre geração de pdf a partir de PHP.
Meu atual script esta dando um erro na linha 48. Não entendo o que esta havendo.
Disponho do script para vossa observação. Se alguém souber como indicar o que posso esta alterando, agradeço!
Muito Obrigado: José Benilton...
<?
ob_start();
$type = $_POST[group1];
require('fpdf/fpdf.php');
define('FPDF_FONTPATH','fpdf/font/');
include('../default/a2conectar.php');
if($type == 0)
{
$pdf = new FPDF('P','cm','A4');
$pdf -> AddPage();
$pdf -> SetMargins(1,1,1);
$lin = 1;
$col = 1;
$status = 1;
$cont = 0;
$inicio = $_POST[inicio];
$folhas = $_POST[folhas];
$folhas = $folhas * 10;
$folhas = (($inicio + $folhas) - 1);
$qry= "SELECT vox_espelho,username FROM cc_card WHERE vox_espelho >= $inicio AND vox_espelho <= $folhas AND nbused = 0 GROUP BY vox_espelho ORDER BY vox_espelho";
$buscar = mysql_query($qry);
while($linha = mysql_fetch_array($buscar))
{
switch($lin)
{
case 1:
if(($lin == 1) and ($col == 1)){$a=3; $b=2; $c=7.5; $d=4.7; $e=1.9; $f=1.9; $col++;} else {
if(($lin == 1) and ($col == 2)){$a=12.5; $b=2; $c=17; $d=4.7; $e=18.7; $f=1.9; $col = 1; $lin++;}}
break;
case 2:
if(($lin == 2) and ($col == 1)){$a=3; $b=7.5; $c=7.5; $d=10.2; $e=1.9; $f=7.1; $col++;} else {
if(($lin == 2) and ($col == 2)){$a=12.5; $b=7.5; $c=17; $d=10.2; $e=18.7; $f=7.1; $col = 1; $lin++;}}}
break;
case 3:
if(($lin == 3) and ($col == 1)){$a=3; $b=13; $c=7.5;$d=15.7; $e=1.9; $f=12.4; $col++;} else {
if(($lin == 3) and ($col == 2)){$a=12.5; $b=13; $c=17; $d=15.7; $e=18.7; $f=12.4; $col = 1; $lin++;}}}}
break;
case 4:
if(($lin == 4) and ($col == 1)){$a=3; $b=18.5; $c=7.5; $d=21.2; $e=1.9; $f=17.6; $col++;} else {
if(($lin == 4) and ($col == 2)){$a=12.5; $b=18.5; $c=17; $d=21.2; $e=18.7; $f=17.6; $lin=1; $col=1;
break;
case 5:
if(($lin == 5) and ($col == 1)){$a=3; $b=24; $c=7.5; $d=26.7; $e=1.9; $f=17.6; $col++;} else {
if(($lin == 5) and ($col == 2)){$a=12.5; $b=24; $c=17; $d=26.7; $e=18.7; $f=17.6; $lin=1; $col=1;{
break;
$status=1;}}}
break;
}
$pdf -> SetFont('Arial','',12);
$pdf -> SetXY($e,$f);
#$pdf -> Cell(1,0.05,'ACCESO LOCAL: 3224 26 22',0,0,'L');
//Codigo PIN
$pdf -> SetFont('Arial','',12);
$pdf -> SetXY($a,$b);
$pdf -> Cell(1,0.05,$linha[1],0,0,'L');
//Numero de serie e codigo de barras
$pdf -> SetFont('Arial','',10);
$pdf -> SetXY($c,$d);
$pdf -> Cell(1,0.05,$linha[0],0,0,'L');
if(($status == 1) and ($_POST[folhas] != $cont)){$pdf -> AddPage(); $status = 0; $cont++;}
}
}
$pdf -> Output('arquivo','I');
include('../default/a2desconectar.php');
?>
Mensagem
Pessoal boa noite:
Estou com um probleminha sobre geração de pdf a partir de PHP.
Meu atual script esta dando um erro na linha 48. Não entendo o que esta havendo.
Disponho do script para vossa observação. Se alguém souber como indicar o que posso esta alterando, agradeço!
Muito Obrigado: José Benilton...
<?
ob_start();
$type = $_POST[group1];
require('fpdf/fpdf.php');
define('FPDF_FONTPATH','fpdf/font/');
include('../default/a2conectar.php');
if($type == 0)
{
$pdf = new FPDF('P','cm','A4');
$pdf -> AddPage();
$pdf -> SetMargins(1,1,1);
$lin = 1;
$col = 1;
$status = 1;
$cont = 0;
$inicio = $_POST[inicio];
$folhas = $_POST[folhas];
$folhas = $folhas * 10;
$folhas = (($inicio + $folhas) - 1);
$qry= "SELECT vox_espelho,username FROM cc_card WHERE vox_espelho >= $inicio AND vox_espelho <= $folhas AND nbused = 0 GROUP BY vox_espelho ORDER BY vox_espelho";
$buscar = mysql_query($qry);
while($linha = mysql_fetch_array($buscar))
{
switch($lin)
{
case 1:
if(($lin == 1) and ($col == 1)){$a=3; $b=2; $c=7.5; $d=4.7; $e=1.9; $f=1.9; $col++;} else {
if(($lin == 1) and ($col == 2)){$a=12.5; $b=2; $c=17; $d=4.7; $e=18.7; $f=1.9; $col = 1; $lin++;}}
break;
case 2:
if(($lin == 2) and ($col == 1)){$a=3; $b=7.5; $c=7.5; $d=10.2; $e=1.9; $f=7.1; $col++;} else {
if(($lin == 2) and ($col == 2)){$a=12.5; $b=7.5; $c=17; $d=10.2; $e=18.7; $f=7.1; $col = 1; $lin++;}}}
break;
case 3:
if(($lin == 3) and ($col == 1)){$a=3; $b=13; $c=7.5;$d=15.7; $e=1.9; $f=12.4; $col++;} else {
if(($lin == 3) and ($col == 2)){$a=12.5; $b=13; $c=17; $d=15.7; $e=18.7; $f=12.4; $col = 1; $lin++;}}}}
break;
case 4:
if(($lin == 4) and ($col == 1)){$a=3; $b=18.5; $c=7.5; $d=21.2; $e=1.9; $f=17.6; $col++;} else {
if(($lin == 4) and ($col == 2)){$a=12.5; $b=18.5; $c=17; $d=21.2; $e=18.7; $f=17.6; $lin=1; $col=1;
break;
case 5:
if(($lin == 5) and ($col == 1)){$a=3; $b=24; $c=7.5; $d=26.7; $e=1.9; $f=17.6; $col++;} else {
if(($lin == 5) and ($col == 2)){$a=12.5; $b=24; $c=17; $d=26.7; $e=18.7; $f=17.6; $lin=1; $col=1;{
break;
$status=1;}}}
break;
}
$pdf -> SetFont('Arial','',12);
$pdf -> SetXY($e,$f);
#$pdf -> Cell(1,0.05,'ACCESO LOCAL: 3224 26 22',0,0,'L');
//Codigo PIN
$pdf -> SetFont('Arial','',12);
$pdf -> SetXY($a,$b);
$pdf -> Cell(1,0.05,$linha[1],0,0,'L');
//Numero de serie e codigo de barras
$pdf -> SetFont('Arial','',10);
$pdf -> SetXY($c,$d);
$pdf -> Cell(1,0.05,$linha[0],0,0,'L');
if(($status == 1) and ($_POST[folhas] != $cont)){$pdf -> AddPage(); $status = 0; $cont++;}
}
}
$pdf -> Output('arquivo','I');
include('../default/a2desconectar.php');
?>
case 3:
if(($lin == 3) and ($col == 1)){$a=3; $b=13; $c=7.5;$d=15.7; $e=1.9; $f=12.4; $col++;} else {
if(($lin == 3) and ($col == 2)){$a=12.5; $b=13; $c=17; $d=15.7; $e=18.7; $f=12.4; $col = 1; $lin++;}}}
break;
Neste Aqui pra ser mais exato!
Mensagem
case 3:
if(($lin == 3) and ($col == 1)){$a=3; $b=13; $c=7.5;$d=15.7; $e=1.9; $f=12.4; $col++;} else {
if(($lin == 3) and ($col == 2)){$a=12.5; $b=13; $c=17; $d=15.7; $e=18.7; $f=12.4; $col = 1; $lin++;}}}
break;
Neste Aqui pra ser mais exato!
"Acredito que faltou setar o contentType para pdf!"
E como se seta o CONTENT TYPE?
Abraço!
Mensagem
"Acredito que faltou setar o contentType para pdf!"
E como se seta o CONTENT TYPE?
Abraço!
Olá, parabéns pelo Viva o Linux!.
Estou procurando um script em php como este apresentado acima pelo Luis Carlos de Brito.
Estou começando a estudar PHP e como sou iniciante, preciso da ajuda destes "Feras".
É o seguinte, mais ou menos como apresenta o script acima,
preciso de um banco de dados que armazene tipo nome e valor on line pelo navegador.
Estes dados serão editados por alguem autorizado em um apágina com opção de serem apagados ou inseridos novos dados. (Ex. abaixo)
____________________________________________________
José da Silva | 1.200,00 | apagar
____________________________________________________
Ana Maria | 800,00 | apagar
....
Botão "Adicionar Novo"
Depois preciso fazer estes dados serem salvos em pdf e que posteriormente
serão exibidos ao clicar em um menu.
Espero ter explicado o que preciso.
Se puderem me ajudar, fico muito agradecido.
Abraço,
João Camilo.
Mensagem
Olá, parabéns pelo Viva o Linux!.
Estou procurando um script em php como este apresentado acima pelo Luis Carlos de Brito.
Estou começando a estudar PHP e como sou iniciante, preciso da ajuda destes "Feras".
É o seguinte, mais ou menos como apresenta o script acima,
preciso de um banco de dados que armazene tipo nome e valor on line pelo navegador.
Estes dados serão editados por alguem autorizado em um apágina com opção de serem apagados ou inseridos novos dados. (Ex. abaixo)
____________________________________________________
José da Silva | 1.200,00 | apagar
____________________________________________________
Ana Maria | 800,00 | apagar
....
Botão "Adicionar Novo"
Depois preciso fazer estes dados serem salvos em pdf e que posteriormente
serão exibidos ao clicar em um menu.
Espero ter explicado o que preciso.
Se puderem me ajudar, fico muito agradecido.
Abraço,
João Camilo.
Ola estou tentando gerar um pdf e fiz os passos mas na hora de rodar apareceu isso:
%PDF-1.3 %âãÏÓ 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Creator (R and OS php pdf writer,
http://www.ros.co.nz) /CreationDate (D:20090916) >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 62 >> stream xœãr Q06Ð300P°04Ô³°4PIQÐwS04Š*„¤)(hx¤æää+„çå¤(j*„d)¸†J£ & endstream endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000257 00000 n 0000000286 00000 n 0000000391 00000 n 0000000454 00000 n trailer << /Size 8 /Root 1 0 R /Info 5 0 R >> startxref 588 %%EOF
O que devo fazer??
Grato
Eduardo
Skape = du.tigrosa
Mensagem
Ola estou tentando gerar um pdf e fiz os passos mas na hora de rodar apareceu isso:
%PDF-1.3 %âãÏÓ 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Creator (R and OS php pdf writer, http://www.ros.co.nz) /CreationDate (D:20090916) >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 62 >> stream xœãr Q06Ð300P°04Ô³°4PIQÐwS04Š*„¤)(hx¤æää+„çå¤(j*„d)¸†J£ & endstream endobj xref 0 8 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000257 00000 n 0000000286 00000 n 0000000391 00000 n 0000000454 00000 n trailer << /Size 8 /Root 1 0 R /Info 5 0 R >> startxref 588 %%EOF
O que devo fazer??
Grato
Eduardo
Skape = du.tigrosa
Para resolver o problema com acentuação basta fazer o seguinte:
(retirado de:
http://listas.softwarelivre.org/pipermail/dotproject-br/2008-May/002350.html)
No arquivo lib/ezpdf/class.pdf.php por volta da linha 2159 substitua:
function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){
if (!$this->numFonts){$this->selectFont(\'./fonts/Helvetica\');}
por
function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){
$text = utf8_decode($text);
if (!$this->numFonts){$this->selectFont(\'./fonts/Helvetica\');}
Ou seja acrescente na função a linha
$text = utf8_decode($text);
até mais...
Mensagem
Para resolver o problema com acentuação basta fazer o seguinte:
(retirado de: http://listas.softwarelivre.org/pipermail/dotproject-br/2008-May/002350.html)
No arquivo lib/ezpdf/class.pdf.php por volta da linha 2159 substitua:
function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){
if (!$this->numFonts){$this->selectFont(\'./fonts/Helvetica\');}
por
function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){
$text = utf8_decode($text);
if (!$this->numFonts){$this->selectFont(\'./fonts/Helvetica\');}
Ou seja acrescente na função a linha
$text = utf8_decode($text);
até mais...
Boa tarde galera, gostei pra caramba desta dica, consegui gerar um relatorio com somente texto que eu estava querendo, mas a duvida é tenho um catalogo em PHP com varias imagens e não faço a minima idéia de como tornar ele em PDF oque seria de grande ajuda pra mim. Será que alguém pode me ajudar, meu email é josao_loco@hotmail.com, desde ja agradeço a todos.. e principalmente ao luis carlos.
vou postar o codigo fonte aqui:
<?
include("admin/includes/header.php");
include_once("admin/includes/conexao.php");
include_once("configuracoes.php");
$a = "1";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
div {
position: relative;
left: 120px;
width: 240px;
top: 140px;/*
text-align: left;
padding: 5px;
background: #a9d06a;
margin: 3px 0 0 0;
border-bottom: 1px solid #333333;
border-bottom: 1px solid #555555; */
}
div.fundo {
position: relative;
left: -10px;
width: 854px;
top: 130px;
}
div.subdepto {
position: absolute;
z-index: 2;
left: 51px;
width: 129px;
height: 25px;
top: 41px;
}
div.paginacao {
position: absolute;
z-index: 3;
left: 590px;
width: 218px;
height: 25px;
top: 2px;
}
div.paginacao2 {
position: absolute;
z-index: 4;
left: 625px;
width: 218px;
height: 25px;
top: 1217px;
}
body {
background-image: url(img/fundo_cat.jpg);
background-repeat:repeat-y;
}
</style>
</head>
<body>
<div class="fundo">
<table width="200" height="226" border="0" align="right">
<?
$select = mysql_query("SELECT IF(ISNULL(produtos.marca),'',marcas.nome) AS nmarca, produtos.* FROM produtos LEFT JOIN marcas ON marcas.id = produtos.marca");
$coluna=1;
echo "<tr>";
if(mysql_num_rows($select) != 0){
$p = "20";
$sql = mysql_query("SELECT IF(ISNULL(produtos.marca),'',marcas.nome) AS nmarca, produtos.* FROM produtos LEFT JOIN marcas ON marcas.id = produtos.marca WHERE disponivel = '1' order by subdepto , nome asc");
while($valor = mysql_fetch_array($sql)){
?>
<?
if ($valor["foto"]){
$nf = explode('pq',$valor["foto"]);
//echo $nf[0];
if($nf[0] == ""){
$caminho21 = "grande/gr".$nf[1];
}else{
$caminho21 = "grande/".$valor["foto"];
}
$caminho = "pequena/".$valor["foto"];
$caminho2 = $caminho21;
}
?>
<td width="156" valign="top"> <table width="177" height="202" border="0" cellpadding="0" cellspacing="0" style="border-bottom:1px dashed #CCCCCC;">
<tr>
<td valign="top"><font size="2">
<?=$valor["nome"]?><?=$valor['subdepto']?>
</font></td>
</tr>
<tr>
<td width="194" valign="top">
<img src="<?=$caminho?>" width="140px" height="140px" border="0" /><br />
Ref: <font color="#FF0000"><?=$valor['codigo']?></font><br />
<?=$valor['unidades']?> un</a></td>
</tr>
</table>
<?
if(($a%16)==0){
echo "<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />";
}
if (($coluna%4)==0)
{
echo "</tr><tr>"; //quando atingir 5 colunas, fecha a linha anterior e inicia uma nova linha
}
$coluna++;
$a++;
}
}else{
echo "Banco de Dados Vazio";
}
echo "</tr>";
?>
</table>
</div></body>
</html>
Mensagem
Boa tarde galera, gostei pra caramba desta dica, consegui gerar um relatorio com somente texto que eu estava querendo, mas a duvida é tenho um catalogo em PHP com varias imagens e não faço a minima idéia de como tornar ele em PDF oque seria de grande ajuda pra mim. Será que alguém pode me ajudar, meu email é josao_loco@hotmail.com, desde ja agradeço a todos.. e principalmente ao luis carlos.
vou postar o codigo fonte aqui:
<?
include("admin/includes/header.php");
include_once("admin/includes/conexao.php");
include_once("configuracoes.php");
$a = "1";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
div {
position: relative;
left: 120px;
width: 240px;
top: 140px;/*
text-align: left;
padding: 5px;
background: #a9d06a;
margin: 3px 0 0 0;
border-bottom: 1px solid #333333;
border-bottom: 1px solid #555555; */
}
div.fundo {
position: relative;
left: -10px;
width: 854px;
top: 130px;
}
div.subdepto {
position: absolute;
z-index: 2;
left: 51px;
width: 129px;
height: 25px;
top: 41px;
}
div.paginacao {
position: absolute;
z-index: 3;
left: 590px;
width: 218px;
height: 25px;
top: 2px;
}
div.paginacao2 {
position: absolute;
z-index: 4;
left: 625px;
width: 218px;
height: 25px;
top: 1217px;
}
body {
background-image: url(img/fundo_cat.jpg);
background-repeat:repeat-y;
}
</style>
</head>
<body>
<div class="fundo">
<table width="200" height="226" border="0" align="right">
<?
$select = mysql_query("SELECT IF(ISNULL(produtos.marca),'',marcas.nome) AS nmarca, produtos.* FROM produtos LEFT JOIN marcas ON marcas.id = produtos.marca");
$coluna=1;
echo "<tr>";
if(mysql_num_rows($select) != 0){
$p = "20";
$sql = mysql_query("SELECT IF(ISNULL(produtos.marca),'',marcas.nome) AS nmarca, produtos.* FROM produtos LEFT JOIN marcas ON marcas.id = produtos.marca WHERE disponivel = '1' order by subdepto , nome asc");
while($valor = mysql_fetch_array($sql)){
?>
<?
if ($valor["foto"]){
$nf = explode('pq',$valor["foto"]);
//echo $nf[0];
if($nf[0] == ""){
$caminho21 = "grande/gr".$nf[1];
}else{
$caminho21 = "grande/".$valor["foto"];
}
$caminho = "pequena/".$valor["foto"];
$caminho2 = $caminho21;
}
?>
<td width="156" valign="top"> <table width="177" height="202" border="0" cellpadding="0" cellspacing="0" style="border-bottom:1px dashed #CCCCCC;">
<tr>
<td valign="top"><font size="2">
<?=$valor["nome"]?><?=$valor['subdepto']?>
</font></td>
</tr>
<tr>
<td width="194" valign="top">
<img src="<?=$caminho?>" width="140px" height="140px" border="0" /><br />
Ref: <font color="#FF0000"><?=$valor['codigo']?></font><br />
<?=$valor['unidades']?> un</a></td>
</tr>
</table>
<?
if(($a%16)==0){
echo "<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />";
}
if (($coluna%4)==0)
{
echo "</tr><tr>"; //quando atingir 5 colunas, fecha a linha anterior e inicia uma nova linha
}
$coluna++;
$a++;
}
}else{
echo "Banco de Dados Vazio";
}
echo "</tr>";
?>
</table>
</div></body>
</html>
"Acredito que faltou setar o contentType para pdf!"
E como se seta o CONTENT TYPE?
Abraço!
--------------------------------------------------------------
Amigo, no caso se estiver usando o IE 8 assim como eu estava, e tendo o mesmo problema, apague seus arquivos temporários da internet, para forçar o navegador de carregar a página novamente.
Eu fiz isso e bastou.
Se realmente não for só problema com isso, tente usar a função header desta maneira:
header('Content-type: application/pdf');
Creio que isso vá funcionar.
Abraço.
Mensagem
"Acredito que faltou setar o contentType para pdf!"
E como se seta o CONTENT TYPE?
Abraço!
--------------------------------------------------------------
Amigo, no caso se estiver usando o IE 8 assim como eu estava, e tendo o mesmo problema, apague seus arquivos temporários da internet, para forçar o navegador de carregar a página novamente.
Eu fiz isso e bastou.
Se realmente não for só problema com isso, tente usar a função header desta maneira:
header('Content-type: application/pdf');
Creio que isso vá funcionar.
Abraço.
Boa tarde!
Realizei a parametriza usando a biblioteca no Windows com WAMP, tudo funcionado perfeitamente, gerando PDF pegando variável do BD, porem precisei mover aplicação para ambiente com Linux Mint com XAMPP, ao gerar o PDF ele fica vira e rotacional.
Tentei fazer alguns ajuste ma não deu certo.
Por favor se puder me ajudar, agradeço!
Mensagem
Boa tarde!
Realizei a parametriza usando a biblioteca no Windows com WAMP, tudo funcionado perfeitamente, gerando PDF pegando variável do BD, porem precisei mover aplicação para ambiente com Linux Mint com XAMPP, ao gerar o PDF ele fica vira e rotacional.
Tentei fazer alguns ajuste ma não deu certo.
Por favor se puder me ajudar, agradeço!
Contribuir com comentário
Enviar