JRRC 0 Denunciar post Postado Setembro 4, 2010 Boa tarde a todos. Bom galera meu problema é o seguinte, tenho um página que eu desejo transformá-la em um arquivo PDF, então pesquisando na net encontrei bons comentários sobre o MPDF então resolvi testá-lo. Então o implementei em uma página, só que a página demora uma eternidade para carregar e quando carrega simplesmente não aparece nada. Meu código está da seguinte forma abaixo, alguém poderia por favor me dizer aonde que estou errando ?! <?php require_once "conexao.php"; session_start(); //header("Content-type: text/html; charset=iso-8859-1"); ob_start(); ini_set("memory_limit","16M"); ?> <?php $end = "http://localhost/safen"; ob_end_clean(); // Finaliza o fluxo define('_MPDF_PATH', 'classes/mpdf45/'); include(_MPDF_PATH.'mpdf.php'); // cria um novo container PDF no formato A4 com orientação customizada $mpdf = new mPDF('pt','A4',3,'',8,8,5,14,9,9,'P'); // muda o charset para aceitar caracteres acentuados iso 8859-1 utilizados por mim no banco de dados e na geracao do conteudo PHP com HTML $mpdf -> allow_charset_conversion=true; $mpdf -> charset_in='iso-8859-1'; //Algumas configurações do PDF $mpdf -> SetDisplayMode('fullpage'); // modo de visualização $mpdf -> SetFooter('{DATE j/m/Y H:i}|{PAGENO}/{nb}|SAFEN - Sistema de Avaliação Física e Nutricional'); // carrega uma folha de estilo - MAGICA!!! $stylesheet = file_get_contents('css/formulario-impressao.css'); $stylesheet1 = file_get_contents('css/layout_geral.css'); // incorpora a folha de estilo ao PDF // O parâmetro 1 diz que este é um css/style e deverá ser interpretado como tal $mpdf -> WriteHTML($stylesheet,1); $mpdf -> WriteHTML($stylesheet1,1); $nivel = $_SESSION["nivel"]; $msg_alt = "alterado com sucesso."; $msg_add = "cadastrado com sucesso."; $msg_adda = "cadastrada com sucesso."; $msg_erro = "não tem permissão para acessar está página."; $msg_pag = "realizado com sucesso."; $msg_sist = "já cadastrado no sistema."; $msg_id = "não cadastrado no sistema"; $codigo = "$GET_02"; $sql = "SELECT cc.*, cli.nome AS cliente, cli.peso AS peso, cli.altura AS altura, cli.datanasc AS datanasc, cli.sexo AS sexo, func.nome AS funcionario, FLOOR(DATEDIFF(CURDATE(), cli.datanasc) / 365.25) AS idade FROM compcorporal AS cc INNER JOIN cliente AS cli ON cli.id = cc.cliente_id INNER JOIN funcionario AS func ON func.id = cc.funcionario_id AND cc.id = $codigo"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $cliente = $linha[cliente]; $peso = $linha[peso]; $altura = $linha[altura]; $sexo = $linha[sexo]; $funcionario = $linha[funcionario]; $laudo = $linha[laudo]; $dataava = $linha[dataava]; $idade = $linha[idade]; $dataava = explode("-","$dataava") ; $dataava = "$dataava[2]/$dataava[1]/$dataava[0]"; if ($sexo == "M") {$sexo = "Masculino";} else {$sexo = "Feminino";} if ($linha["mm"] > 0) {$mm = $linha["mm"]*2.017;} else { $mm = $linha["mm"]*(-2.017);} if ($linha["pid"] > 0) {$pid = $linha["pid"]*2.017;} else { $pid = $linha["pid"]*(-2.017);} if ($linha["pg"] > 0) {$pg = $linha["pg"]*2.017;} else { $pg = $linha["pg"]*(-2.017);} if ($linha["mg"] > 0) {$mg = $linha["mg"]*2.017;} else { $mg = $linha["mg"]*(-2.017);} if ($linha["oe"] > 0) {$oe = $linha["oe"]*2.017;} else { $oe = $linha["oe"]*(-2.017);} $html=' <!-- Inicio topo.php --> <html> <div id="centralizar-pagina"> <head></head> <div id="center"> <title>SAFEN v1.0 - Sistema de Avaliação Fisica e Nutricional</title> <h2>SAFEN v1.0 - Sistema de Avaliação Fisica e Nutricional</h2> <br> <body> <!-- FIM topo.php --> <!-- Inicio Exame Composição Corporal --> <div class="titulo_content"> <h1>Dados da Composicao Corporal</h1> </div> </div> <br> <div id="mae-form"> <!-- Inicio DIV mae-form --> <div id="nome-campo">Avaliador:</div> <div id="input-campo"> '."$funcionario ".' </div> <div id="nome-campo">Cliente:</div> <div id="input-campo"> '."$cliente".'</div> <div id="nome-campo">Peso:</div> <div id="input-campo"> '."$peso".' Kg <div id="sobre-campo">Altura: </div>'."$altura".' Metros </div> <div id="nome-campo">Data da Avaliação:</div> <div id="input-campo"> '."$dataava".' </div> <div id="nome-campo">Idade:</div> <div id="input-campo">'."$idade".'</div> <div id="nome-campo">Sexo:</div> <div id="input-campo">'."$sexo".'</div> <div id="nome-campo-label"> <!-- Inicio DIV nome-campo-label --> <div id="grafico-comcorp-divisao-esquerdo"> <!-- Inicio DIV grafico-comcorp-divisao-esquerdo --> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["mm"].'</h2> <img src="'."$end".'/imagens/img01.png" height='."$mm".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["pid"].'</h2> <img src="'."$end".'/imagens/img02.png" height='."$pid".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["pg"].'</h2> <img src="'."$end".'/imagens/img03.png" height='."$pg".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2> '.$linha["mg"].'</h2> <img src="'."$end".'/imagens/img04.png" height='."$mg".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2> '.$linha["oe"].'</h2> <img src="'."$end".'/imagens/img05.png" height='."$oe".' width="60px"/> </div> </div> <!-- Fim DIV grafico-comcorp-divisao-esquerdo --> <div id="grafico-comcorp-divisao-direito"> <!-- Inicio DIV grafico-comcorp-divisao-direito --> Laudo pré-estabelecido durante o processo de avaliação:<br /> <div id="campo-text-area"> <textarea name="laudo" cols="45" rows="4" disabled="disabled" id="laudo"> '."$laudo".' </textarea></div> </div> <!-- Fim DIV grafico-comcorp-divisao-direito --> </div> <!-- Fim DIV nome-campo-label --> </div> <!-- Fim DIV mae-form --> <div id="both"></div> <!-- FIM Exame Composição Corporal --> </body> </div> </html>'; // incorpora o corpo ao PDF na posição 2 e deverá ser interpretado como footage. Todo footage é posicao 2 ou 0(padrão). $mpdf -> WriteHTML($html,2); // define um nome para o arquivo PDF $arquivo = date("ymdhis").'-exame-composicao-corporal-($cliente).pdf'; // gera o relatório $mpdf -> Output($arquivo,'D'); exit(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 4, 2010 Bom pessoal tenho uma pequena evolução já, o arquivo PDF já é gerado, o problema é que ele mostra na página gerada apenas o rodapé. Caso eu coloque um -->> echo $html; exit; <<-- antes dos comandos abaixo, a página com os dados relativos ao exame aparecem no browser perfeitamente. $html = ob_get_clean(); // converte o conteudo para uft-8 $html = utf8_encode($html); // incorpora o corpo ao PDF na posição 2 e deverá ser interpretado como footage. Todo footage é posicao 2 ou 0(padrão). $mpdf -> WriteHTML($html,2); // define um nome para o arquivo PDF $arquivo = date("d-m-Y").'-exame-composicao-corporal-($cliente).pdf'; // gera o relatório $mpdf -> Output($arquivo,'D'); exit(); Meu código agora se encontra da seguinte forma abaixo: <?php require_once "conexao.php"; session_start(); //header("Content-type: text/html; charset=iso-8859-1"); ob_start(); ini_set("memory_limit","16M"); ?> <?php $end = "http://localhost/safen"; //ob_end_clean(); // Finaliza o fluxo define('_MPDF_PATH', 'classes/mpdf45/'); include(_MPDF_PATH.'mpdf.php'); // cria um novo container PDF no formato A4 com orientação customizada $mpdf = new mPDF('pt','A4',3,'',8,8,5,14,9,9,'P'); // muda o charset para aceitar caracteres acentuados iso 8859-1 utilizados por mim no banco de dados e na geracao do conteudo PHP com HTML $mpdf -> allow_charset_conversion=true; $mpdf -> charset_in='iso-8859-1'; //Algumas configurações do PDF $mpdf -> SetDisplayMode('fullpage'); // modo de visualização $mpdf -> SetFooter('{DATE d/m/Y H:i:s}|{PAGENO}/{nb}|SAFEN - Sistema de Avaliacaoo Fisica e Nutricional'); // carrega uma folha de estilo - MAGICA!!! $stylesheet = file_get_contents('css/formulario-impressao.css'); $stylesheet1 = file_get_contents('css/layout_geral.css'); // incorpora a folha de estilo ao PDF // O parâmetro 1 diz que este é um css/style e deverá ser interpretado como tal $mpdf -> WriteHTML($stylesheet,1); $mpdf -> WriteHTML($stylesheet1,1); $nivel = $_SESSION["nivel"]; $id = $_GET["id"]; $sql = "SELECT cc.*, cli.nome AS cliente, cli.peso AS peso, cli.altura AS altura, cli.datanasc AS datanasc, cli.sexo AS sexo, func.nome AS funcionario, FLOOR(DATEDIFF(CURDATE(), cli.datanasc) / 365.25) AS idade FROM compcorporal AS cc INNER JOIN cliente AS cli ON cli.id = cc.cliente_id INNER JOIN funcionario AS func ON func.id = cc.funcionario_id AND cc.id = $id"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $cliente = $linha[cliente]; $peso = $linha[peso]; $altura = $linha[altura]; $sexo = $linha[sexo]; $funcionario = $linha[funcionario]; $laudo = $linha[laudo]; $dataava = $linha[dataava]; $idade = $linha[idade]; $dataava = explode("-","$dataava") ; $dataava = "$dataava[2]/$dataava[1]/$dataava[0]"; if ($sexo == "M") {$sexo = "Masculino";} else {$sexo = "Feminino";} if ($linha["mm"] > 0) {$mm = $linha["mm"]*2.017;} else { $mm = $linha["mm"]*(-2.017);} if ($linha["pid"] > 0) {$pid = $linha["pid"]*2.017;} else { $pid = $linha["pid"]*(-2.017);} if ($linha["pg"] > 0) {$pg = $linha["pg"]*2.017;} else { $pg = $linha["pg"]*(-2.017);} if ($linha["mg"] > 0) {$mg = $linha["mg"]*2.017;} else { $mg = $linha["mg"]*(-2.017);} if ($linha["oe"] > 0) {$oe = $linha["oe"]*2.017;} else { $oe = $linha["oe"]*(-2.017);} $html = ' <!-- Inicio topo.php --> <html> <div id="centralizar-pagina"> <head></head> <div id="center"> <title>SAFEN v1.0 - Sistema de Avaliacao Fisica e Nutricional</title> <h2>SAFEN v1.0 - Sistema de Avaliacao Fisica e Nutricional</h2> <br> <body> <!-- FIM topo.php --> <!-- Inicio Exame Composicao Corporal --> <div class="titulo_content"> <h1>Dados da Composicao Corporal</h1> </div> </div> <br> <div id="mae-form"> <!-- Inicio DIV mae-form --> <div id="nome-campo">Avaliador:</div> <div id="input-campo"> '."$funcionario ".' </div> <div id="nome-campo">Cliente:</div> <div id="input-campo"> '."$cliente".'</div> <div id="nome-campo">Peso:</div> <div id="input-campo"> '."$peso".' Kg <div id="sobre-campo">Altura: </div>'."$altura".' Metros </div> <div id="nome-campo">Data da Avaliacao:</div> <div id="input-campo"> '."$dataava".' </div> <div id="nome-campo">Idade:</div> <div id="input-campo">'."$idade".'</div> <div id="nome-campo">Sexo:</div> <div id="input-campo">'."$sexo".'</div> <div id="nome-campo-label"> <!-- Inicio DIV nome-campo-label --> <div id="grafico-comcorp-divisao-esquerdo"> <!-- Inicio DIV grafico-comcorp-divisao-esquerdo --> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["mm"].'</h2> <img src="'."$end".'/imagens/img01.png" height='."$mm".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["pid"].'</h2> <img src="'."$end".'/imagens/img02.png" height='."$pid".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["pg"].'</h2> <img src="'."$end".'/imagens/img03.png" height='."$pg".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2> '.$linha["mg"].'</h2> <img src="'."$end".'/imagens/img04.png" height='."$mg".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2> '.$linha["oe"].'</h2> <img src="'."$end".'/imagens/img05.png" height='."$oe".' width="60px"/> </div> </div> <!-- Fim DIV grafico-comcorp-divisao-esquerdo --> <div id="grafico-comcorp-divisao-direito"> <!-- Inicio DIV grafico-comcorp-divisao-direito --> Laudo pre-estabelecido durante o processo de avaliacao:<br /> <div id="campo-text-area"> <textarea name="laudo" cols="45" rows="4" disabled="disabled" id="laudo"> '."$laudo".' </textarea></div> </div> <!-- Fim DIV grafico-comcorp-divisao-direito --> </div> <!-- Fim DIV nome-campo-label --> </div> <!-- Fim DIV mae-form --> <div id="both"></div> <!-- FIM Exame Composicao Corporal --> </body> </div> </html>'; $html = ob_get_clean(); // converte o conteudo para uft-8 $html = utf8_encode($html); // incorpora o corpo ao PDF na posição 2 e deverá ser interpretado como footage. Todo footage é posicao 2 ou 0(padrão). $mpdf -> WriteHTML($html,2); // define um nome para o arquivo PDF $arquivo = date("d-m-Y").'-exame-composicao-corporal-($cliente).pdf'; // gera o relatório $mpdf -> Output($arquivo,'D'); echo $html; exit(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 5, 2010 Uma nova evolução galera, os dados já estão sendo mostrados no arquivo PDF, o problema agora é o arquivo não está lendo corretamente o arquivo CSS, ou seja fica tudo bugado. Para os arquivos aparecer bastou comentar a seguinte linha de comando abaixo $html = ob_get_clean(); Agora falta fazer a leitura corretamente, alguém tem idéia de como eu posso fazer isso ?! Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
Zinhani 0 Denunciar post Postado Setembro 5, 2010 Pra colocar seu html em variavel você deve fazer assim: <?php // Inicia o fluxo ob_start(); ... seu código php $html = ... seu código html // pega o conteudo do buffer, insere na variavel e limpa a memória $html = ob_get_clean(); Ai sim iniciar a classe com as configurações do mpdf. Você inverteu a ordem das coisas talvez seja por isso que o ccs nao esta iniciando. Ou tente usar apenas um arquivo css. Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 5, 2010 Olá Zinhani, fiz da seguinte forma abaixo, acho que igual da forma que você falou. require_once "conexao.php"; session_start(); header("Content-type: text/html; charset=iso-8859-1"); ob_start(); ini_set("memory_limit","16M"); $end = "http-~~-//127.0.0.1/safen"; //ob_end_clean(); // Finaliza o fluxo $nivel = $_SESSION["nivel"]; $id = $_GET["id"]; $sql = "SELECT cc.*, cli.nome AS cliente, cli.peso AS peso, cli.altura AS altura, cli.datanasc AS datanasc, cli.sexo AS sexo, func.nome AS funcionario, FLOOR(DATEDIFF(CURDATE(), cli.datanasc) / 365.25) AS idade FROM compcorporal AS cc INNER JOIN cliente AS cli ON cli.id = cc.cliente_id INNER JOIN funcionario AS func ON func.id = cc.funcionario_id AND cc.id = $id"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $cliente = $linha[cliente]; $peso = $linha[peso]; $altura = $linha[altura]; $sexo = $linha[sexo]; $funcionario = $linha[funcionario]; $laudo = $linha[laudo]; $dataava = $linha[dataava]; $idade = $linha[idade]; $dataava = explode("-","$dataava") ; $dataava = "$dataava[2]/$dataava[1]/$dataava[0]"; if ($sexo == "M") {$sexo = "Masculino";} else {$sexo = "Feminino";} if ($linha["mm"] > 0) {$mm = $linha["mm"]*2.017;} else { $mm = $linha["mm"]*(-2.017);} if ($linha["pid"] > 0) {$pid = $linha["pid"]*2.017;} else { $pid = $linha["pid"]*(-2.017);} if ($linha["pg"] > 0) {$pg = $linha["pg"]*2.017;} else { $pg = $linha["pg"]*(-2.017);} if ($linha["mg"] > 0) {$mg = $linha["mg"]*2.017;} else { $mg = $linha["mg"]*(-2.017);} if ($linha["oe"] > 0) {$oe = $linha["oe"]*2.017;} else { $oe = $linha["oe"]*(-2.017);} $html = ' <!-- Inicio topo.php --> <html> <div id="centralizar-pagina"> <head></head> <div id="center"> <h2>SAFEN v1.0 - Sistema de Avaliacao Fisica e Nutricional</h2> <br> <body> <!-- FIM topo.php --> <!-- Inicio Exame Composicao Corporal --> <div class="titulo_content"> <h1>Dados da Composicao Corporal</h1> </div> </div> <br> <div id="mae-form"> <!-- Inicio DIV mae-form --> <div id="nome-campo">Avaliador:</div> <div id="input-campo"> '."$funcionario ".' </div> <div id="nome-campo">Cliente:</div> <div id="input-campo"> '."$cliente".'</div> <div id="nome-campo">Peso:</div> <div id="input-campo"> '."$peso".' Kg <div id="sobre-campo">Altura: </div>'."$altura".' Metros </div> <div id="nome-campo">Data da Avaliacao:</div> <div id="input-campo"> '."$dataava".' </div> <div id="nome-campo">Idade:</div> <div id="input-campo">'."$idade".'</div> <div id="nome-campo">Sexo:</div> <div id="input-campo">'."$sexo".'</div> <div id="nome-campo-label"> <!-- Inicio DIV nome-campo-label --> <div id="grafico-comcorp-divisao-esquerdo"> <!-- Inicio DIV grafico-comcorp-divisao-esquerdo --> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["mm"].'</h2> <img src="'."$end".'/imagens/img01.png" height='."$mm".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["pid"].'</h2> <img src="'."$end".'/imagens/img02.png" height='."$pid".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2>'.$linha["pg"].'</h2> <img src="'."$end".'/imagens/img03.png" height='."$pg".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2> '.$linha["mg"].'</h2> <img src="'."$end".'/imagens/img04.png" height='."$mg".' width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2> '.$linha["oe"].'</h2> <img src="'."$end".'/imagens/img05.png" height='."$oe".' width="60px"/> </div> </div> <!-- Fim DIV grafico-comcorp-divisao-esquerdo --> <div id="grafico-comcorp-divisao-direito"> <!-- Inicio DIV grafico-comcorp-divisao-direito --> Laudo pre-estabelecido durante o processo de avaliacao:<br /> <div id="campo-text-area"> <textarea name="laudo" cols="45" rows="4" disabled="disabled" id="laudo"> '."$laudo".' </textarea></div> </div> <!-- Fim DIV grafico-comcorp-divisao-direito --> </div> <!-- Fim DIV nome-campo-label --> </div> <!-- Fim DIV mae-form --> <div id="both"></div> <!-- FIM Exame Composicao Corporal --> </body> </div> </html>'; //$mpdf->debug = true; $html = ob_get_clean(); // converte o conteudo para uft-8 $html = utf8_encode($html); define('_MPDF_PATH', 'classes/mpdf45/'); include(_MPDF_PATH.'mpdf.php'); // cria um novo container PDF no formato A4 com orientação customizada $mpdf = new mPDF('pt','A4',3,'',8,8,5,14,9,9,'P'); // muda o charset para aceitar caracteres acentuados iso 8859-1 utilizados por mim no banco de dados e na geracao do conteudo PHP com HTML $mpdf -> allow_charset_conversion=true; $mpdf -> charset_in='iso-8859-1'; //Algumas configurações do PDF $mpdf -> SetDisplayMode('fullpage'); // modo de visualização $mpdf -> SetFooter('{DATE d/m/Y H:i:s}|{PAGENO}/{nb}|SAFEN - Sistema de Avaliacaoo Fisica e Nutricional'); // carrega uma folha de estilo - MAGICA!!! $stylesheet = file_get_contents('css/formularios.css'); //$stylesheet1 = file_get_contents('css/layout_geral.css'); // incorpora a folha de estilo ao PDF // O parâmetro 1 diz que este é um css/style e deverá ser interpretado como tal $mpdf -> WriteHTML($stylesheet,1); //$mpdf -> WriteHTML($stylesheet1,1); // incorpora o corpo ao PDF na posição 2 e deverá ser interpretado como footage. Todo footage é posicao 2 ou 0(padrão). $mpdf -> WriteHTML($html,2); // define um nome para o arquivo PDF $arquivo = date("d-m-Y")."-exame-composicao-corporal-$cliente.pdf"; // gera o relatório $mpdf -> Output($arquivo,'D'); exit(); ?> Era assim que você tinha dito ?! Se for, quando eu mandei abrir a página ficou novamente em branco com $html = ob_get_clean(); descomentado. Compartilhar este post Link para o post Compartilhar em outros sites
Zinhani 0 Denunciar post Postado Setembro 6, 2010 Veja um exemplo que eu uso em uma das minhas aplicações, funciona muito bem. Copia e cola o código do jeito que esta e só arruma os links da classe e css. Faz um teste e posta ai. <?php // aumenta o tempo de execução do script set_time_limit(0); // aumenta a memória ini_set("memory_limit","1G"); // Inicia o fluxo ob_start(); // arquivo de config banco sql // require_once "..."; // arquivo de funções // require_once "..."; // recebe as variaveis por get // ... // consulta banco e pega registros // $sql = "..."; // cabeçalho $header = "... html do cabeçalho ..."; // rodapé $footer = "... html do rodapé ..."; ?> <!-- HTML DA PÁGINA --> <h2>TÍTULO</h2> <p>Teste Mpdf</p> <?php // pega o conteudo do buffer, insere na variavel e limpa a memória $html = ob_get_clean(); // inclui a classe define('MPDF_PATH', './mpdf/'); include(MPDF_PATH.'mpdf.php'); // cria o objeto - $codepage, $format, $default_font_size, $default_font, $margin_left, $margin_right, $margin_top, $margin_bottom, $margin_header, $margin_footer, $orientation. $mpdf = new mPDF ('pt','A4', 0,'arial',30,20,30,20,9,9,'P'); // define o titulo do arquivo $mpdf->SetTitle('Título'); // define o autor do arquivo $mpdf->SetAuthor('Autor'); // define as fontes $mpdf->useOnlyCoreFonts = true; // Habilitar o uso de arquivos PDF importados ou modelos (opcional) $mpdf->SetImportUse(); // modo de exibição inicial quando o arquivo PDF é aberto no Adobe Reader $mpdf->SetDisplayMode('fullwidth'); // muda o charset para aceitar caracteres acentuados iso 8859-1 utilizados por mim no banco de dados e na geracao do conteudo PHP com HTML $mpdf->allow_charset_conversion=true; $mpdf->charset_in='iso-8859-1'; // load do arquivo css $stylesheet = file_get_contents('./pdf.css'); $mpdf->WriteHTML($stylesheet,1); // seta o cabeçalho $mpdf->SetHTMLHeader($header); // seta o rodapé $mpdf->SetHTMLFooter($footer); // escreve definitivamente o conteudo no PDF $mpdf->WriteHTML($html); // imprime o arquivo ex: ('nome do arquivo', 'I') I para abrir no navegador e D para download $mpdf->Output('teste_mpdf.pdf', 'I'); // finaliza o codigo exit(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 6, 2010 Olá, Zinhani Tentei fazer de duas formas e só aparece a página em branco, na primeira só organizei reutilizando o código que eu tinha postado aqui, deixando do jeito do exemplo que você postou. E na segunda deixei da seguinte forma abaixo, mais nada aparece. Você sabe me dizer aonde que eu possa está ERRANDO ?! O MPDF realmente faz a leitura de DIV's ?! Até mais. <?php // aumenta o tempo de execução do script set_time_limit(0); // aumenta a memória ini_set("memory_limit","16M"); // Inicia o fluxo ob_start(); // arquivo de config banco sql require_once "conexao.php"; // recebe as variaveis por get $id = $_GET["id"]; // consulta banco e pega registros $sql = "SELECT cc.*, cli.nome AS cliente, cli.peso AS peso, cli.altura AS altura, cli.datanasc AS datanasc, cli.sexo AS sexo, func.nome AS funcionario, FLOOR(DATEDIFF(CURDATE(), cli.datanasc) / 365.25) AS idade FROM compcorporal AS cc INNER JOIN cliente AS cli ON cli.id = cc.cliente_id INNER JOIN funcionario AS func ON func.id = cc.funcionario_id AND cc.id = $id"; $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $cliente = $linha[cliente]; $peso = $linha[peso]; $altura = $linha[altura]; $sexo = $linha[sexo]; $funcionario = $linha[funcionario]; $laudo = $linha[laudo]; $dataava = $linha[dataava]; $idade = $linha[idade]; $dataava = explode("-","$dataava") ; $dataava = "$dataava[2]/$dataava[1]/$dataava[0]"; if ($sexo == "M") {$sexo = "Masculino";} else {$sexo = "Feminino";} if ($linha["mm"] > 0) {$mm = $linha["mm"]*2.017;} else { $mm = $linha["mm"]*(-2.017);} if ($linha["pid"] > 0) {$pid = $linha["pid"]*2.017;} else { $pid = $linha["pid"]*(-2.017);} if ($linha["pg"] > 0) {$pg = $linha["pg"]*2.017;} else { $pg = $linha["pg"]*(-2.017);} if ($linha["mg"] > 0) {$mg = $linha["mg"]*2.017;} else { $mg = $linha["mg"]*(-2.017);} if ($linha["oe"] > 0) {$oe = $linha["oe"]*2.017;} else { $oe = $linha["oe"]*(-2.017);} ?> <!-- Inicio topo.php --> <html> <div id="centralizar-pagina"> <head></head> <div id="center"> <h2 align="center">SAFEN v1.0 - Sistema de Avaliacao Fisica e Nutricional</h2> <br> <body> <!-- FIM topo.php --> <!-- Inicio Exame Composicao Corporal --> <div class="titulo_content"> <h1>Dados da Composicao Corporal</h1> </div> </div> <br> <div id="mae-form"> <!-- Inicio DIV mae-form --> <div id="nome-campo">Avaliador:</div> <div id="input-campo"><?php echo $funcionario ?></div> <div id="nome-campo">Cliente:</div> <div id="input-campo"><?php echo $cliente ?></div> <div id="nome-campo">Peso:</div> <div id="input-campo"><?php echo $peso ?> Kg <div id="sobre-campo\">Altura: </div> <?php echo $altura ?> Metros </div> <div id="nome-campo">Data da Avaliacao:</div> <div id="input-campo"><?php echo $dataava ?></div> <div id="nome-campo">Idade:</div> <div id="input-campo"><?php echo $idade ?></div> <div id="nome-campo">Sexo:</div> <div id="input-campo"><?php echo $sexo ?></div> <div id="nome-campo-label"> <!-- Inicio DIV nome-campo-label --> <div id="grafico-comcorp-divisao-esquerdo"> <!-- Inicio DIV grafico-comcorp-divisao-esquerdo --> <div id="grafico-comcorp-imagem-mm"> <h2><?php echo $linha["mm"] ?></h2> <img src="imagens/img01.png" height="<?php echo $mm ?>" width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2><?php echo $linha["pid"] ?></h2> <img src="imagens/img02.png" height="<?php echo $pid ?>" width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2><?php echo $linha["pg"] ?></h2> <img src="imagens/img03.png" height="<?php echo $pg ?>" width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2><?php echo $linha["mg"] ?></h2> <img src="imagens/img04.png" height="<?php echo $mg ?>" width="60px"/> </div> <div id="grafico-comcorp-imagem-mm"> <h2><?php echo $linha["oe"] ?></h2> <img src="imagens/img05.png" height="<?php echo $oe ?>" width="60px"/> </div> </div> <!-- Fim DIV grafico-comcorp-divisao-esquerdo --> <div id="grafico-comcorp-divisao-direito"> <!-- Inicio DIV grafico-comcorp-divisao-direito --> Laudo pre-estabelecido durante o processo de avaliacao:<br /> <div id="campo-text-area"> <textarea name="laudo" cols="45" rows="4" disabled="disabled" id="laudo"><?php echo $laudo ?></textarea></div> </div> <!-- Fim DIV grafico-comcorp-divisao-direito --> </div> <!-- Fim DIV nome-campo-label --> </div> <!-- Fim DIV mae-form --> <div id="both"></div> <!-- FIM Exame Composicao Corporal --> </body> </div> </html> <?php // pega o conteudo do buffer, insere na variavel e limpa a memória $html = ob_get_clean(); // inclui a classe define('MPDF_PATH', 'classes/mpdf45/'); include(MPDF_PATH.'mpdf.php'); // cria o objeto - $codepage, $format, $default_font_size, $default_font, $margin_left, $margin_right, $margin_top, $margin_bottom, $margin_header, $margin_footer, $orientation. $mpdf = new mPDF('pt','A4',3,'',8,8,5,14,9,9,'P'); // define o titulo do arquivo $mpdf -> SetTitle('SAFEN - Sistema de Avaliacao Fisica e Nutricional'); // define o autor do arquivo $mpdf -> SetAuthor('Jeovane Reges'); // define as fontes $mpdf -> useOnlyCoreFonts = true; // Habilitar o uso de arquivos PDF importados ou modelos (opcional) $mpdf -> SetImportUse(); // modo de exibição inicial quando o arquivo PDF é aberto no Adobe Reader $mpdf -> SetDisplayMode('fullwidth'); // muda o charset para aceitar caracteres acentuados iso 8859-1 utilizados por mim no banco de dados e na geracao do conteudo PHP com HTML $mpdf -> allow_charset_conversion=true; $mpdf -> charset_in='iso-8859-1'; // carrega uma folha de estilo - MAGICA!!! $stylesheet = file_get_contents('css/formularios.css'); $stylesheet1 = file_get_contents('css/layout_geral.css'); // incorpora a folha de estilo ao PDF // O parâmetro 1 diz que este é um css/style e deverá ser interpretado como tal $mpdf -> WriteHTML($stylesheet,1); $mpdf -> WriteHTML($stylesheet1,1); // modo de visualização $mpdf -> SetFooter('{DATE d/m/Y H:i:s}|{PAGENO}/{nb}|SAFEN - Sistema de Avaliacaoo Fisica e Nutricional'); // converte o conteudo para uft-8 $html = utf8_encode($html); $arquivo = date("d-m-Y")."-exame-composicao-corporal-$cliente.pdf"; // escreve definitivamente o conteudo no PDF // gera o relatório $mpdf -> Output($arquivo,'D'); exit(); //$mpdf->WriteHTML($html, 2); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Zinhani 0 Denunciar post Postado Setembro 7, 2010 Bom, já sabemos que o problema não é mais no uso da classe. Ele interpreta o html semântico. Se você estiver usando alguma coisa errada ele trava mesmo. Quando eu comecei tbm tive problemas com isso. A solução foi ir tirando um elemento de cada vez até descobrir onde estava o erro no html. Depois que descobri, fui trabalhando ele até o mpdf interpretar. Dica: vai colocando linha por linha e gerando o pdf. Compartilhar este post Link para o post Compartilhar em outros sites