Jump to content
marcelobbt

Converter html para pdf com codeigniter

Recommended Posts

Alguém indica uma biblioteca em php para converter páginas para pdf. E como uso a mesma no codeignigter.

 

Obs.: Tentei usar o TCPDF mas da muito trabalho e diversos erros incompreensíveis.

Share this post


Link to post
Share on other sites

Eu indico apenas a TCPDF. Todas as outras trabalharão com o mesmo sistema. Nunca tive erros com ela (ainda mais incompreensíveis). Está utilizando a versão mais recente pelo composer?

Share this post


Link to post
Share on other sites

Então não estou sabendo usar. O texto está vindo pela metade em alguns casos.

 

E sim, baixei a última versão direto do site.

Share this post


Link to post
Share on other sites

Mostre-nos o seu código e os erros apresentados.

Share this post


Link to post
Share on other sites

Segue o código abaixo:

pdf_helper (helper)

<?php
	function tcpdf()
	{
		require_once('tcpdf/examples/lang/eng.php');
		require_once('tcpdf/tcpdf.php');
	}
?>

(controler)

//carrega biblioteca
$this->load->helper('pdf_helper');

//código para obter as informações no BD
...

tcpdf();
// cria novo documento PDF
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//define informações do documento
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Marcelo Teixeira');
$pdf->SetTitle('Relatório');
$pdf->SetSubject('Relatório');
// define fonte
$pdf->SetFont('helvetica', '', 10);
//adiciona a página
$pdf->AddPage();
//adiciona imagem
$pdf->Image('img/bannerRelat.png', 5, 5, 200, 38, 'PNG', '', '', true, 150, '', false, false, 1, false, false, false);
//adiciona segunda imagem
$pdf->Image('img/logo.png', 5, 55, 50, 34, 'PNG', '', '', true, 150, '', false, false, 1, false, false, false);
//cria as colunas
$coluna2 = '<h2>Título: '.$titulo.'</h2>
<p>Autor: '.$autor.'</p>';
//define cor do fundo
$pdf->SetFillColor(255, 255, 255);
//imprime coluna 2
$pdf->writeHTMLCell(120, '', 60, $y, $coluna2, 0, 2, 1, true, 'c', true);
//cria página
ob_start();
$html = '
	<p> </p>
	<table width="80%" border="2" cellspacing="2" cellpadding="6" >
		<tr>
			<td>Data da Reunião</td>
			<td>'.$datareuniaoBD.'</td>
		</tr>
		<tr>
			<td>Número de Membros</td>
			<td>'.$membrostotais.'</td>
		</tr>
		<tr>
			<td>Membros Presentes</td>
			<td>'.$membrosparticipantesBD.'</td>
		</tr>
		<tr>
			<td>Número de Visitantes na Reunião</td>
			<td>'.$visitantesBD.'</td>
		</tr>
		<tr>
			<td>Crianças</td>
			<td>'.$criancasBD.'</td>
		</tr>
		<tr>
			<td>Visitas realizadas na semana?</td>
			<td>'.$visitasBD.'</td>
		</tr>
		...
        <tr>
			<td colspan="2">
				<h5>Relate qualquer situação fora do habitual:</h5>
				<p>
					<ul>
						<li>ESTUDAM OU TRABALHAM: '.$trabalhamBD.'</li>
						<li>FALTOSOS: '.$faltososBD.'</li>
						<li>VISITANTES: '.$nomevisitantesBD.'</li>
					</ul>
				</p>
				<p><strong>Observação:</strong>  '.$observacaoBD.'</p>
			</td>
		</tr>		
	</table>';			
ob_end_clean();
//escreve texto html no pdf
$pdf->writeHTML($html, true, true, false, false, '');
//gera o pdf
$pdf->Output('output.pdf', 'I');

No resultado sai apenas parte do $html. O restante do texto não aparece.

 

Obs.: Também não consigo fazer aparecer a borda da tabela.

 

 

 

Share this post


Link to post
Share on other sites

Qual é o "restante do texto" que não aparece?

 

TCPDF não interpreta HTML com erros, tem uma reticências perdida no meio do seu HTML

  • +1 1

Share this post


Link to post
Share on other sites

Eu havia removido pois era muito grande.

 

Mas depois do que você falou encontrei um caractere perdido no $html e ao remover foi tudo resolvido.

 

Valeu pela ajuda. Agora quando der a mesma coisa vou prestar mais atenção.

obrigado!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By tncardoso
      Fala Pessoal... estou tendo algumas dificuldades num projeto pessoal que estou desenvolvendo com o PHP CodeIgniter.
      Estou tentando mudar o caminho da pagina inicial, para um template que eu baixei e configurei dentro deste projeto.

      Ao fazer isso.. me deparei com o seguinte erro...
      A PHP Error was encountered
      Severity: Notice
      Message: Undefined property: Home::$template
      Filename: controllers/Home.php
      Line Number: 9
      Backtrace:
      File: C:\xampp\htdocs\projects\thiago-cardoso\application\controllers\Home.php
      Line: 9
      Function: _error_handler
      File: C:\xampp\htdocs\projects\thiago-cardoso\index.php
      Line: 315
      Function: require_once
      An uncaught Exception was encountered
      Type: Error
      Message: Call to a member function show() on null
      Filename: C:\xampp\htdocs\projects\thiago-cardoso\application\controllers\Home.php
      Line Number: 9
      Backtrace:
      File: C:\xampp\htdocs\projects\thiago-cardoso\index.php
      Line: 315
      Function: require_once
       
      Em caso de Dúvida, segue aqui também um pouco do arquivo Home.php que estou trabalhando.
      <?php defined('BASEPATH') OR exit('No direct script access allowed');   class Home extends CI_Controller {          public function index()     {         // $this->load->view('home');         $this->template->show('home');     } }  
       
      Aguardo Resposta.
      Obrigado...
       
      Thiago Cardoso
    • By clovis.sardinha
      Pessoal,
      Estou fazendo um relatório no codeigniter, mas não consigo recuperar o retorno da model para a view.  Dou o foreach para utilizar um conjunto de id's que preciso achar em uma tabela, mas o array só recupera o último.
      Controller:
      $destinoterc=$this->triangulomodel->getDestinoterc($origemuser);         $dados['destinoterc']=$destinoterc;         foreach ($destinoterc as &$i){             $origemterc = $i['id'];             $origemtercfinal=$this->triangulomodel->getOrigemterc($origemterc);                                   }         $dados['origterc']= $origemtercfinal;        Model
      public function getOrigemterc($origemterc){ $query =$this->db->query("SELECT * FROM cadastro join tb_cidades on tb_cidades.cid_id=cadastro.cidade_origem where id =$origemterc"); foreach ($query->result_array() as $row) { } return $query->result_array(); }  
      Resultado , só está pegando o último ponteiro da array de origem. Teria que aparecer uns 30 registros.!
      [origterc] => Array ( [0] => Array ( [id_] => 21302 [cidade] => 3233 [cid_nome] => Januaria )  
    • By Spy_brbr
      Tenho um sistema em PHP que funciona como um tipo de repositório para documentos. No início a ideia era apenas realizar pesquisas pelo título ou tipo de documento, mas andei lendo sobre algumas ferramentas como Apache Solr ou ElasticSearch que realizazam a indexação dos arquivos e permite realizar as buscas dentro de arquivos PDF, DOC, etc. Alguém já utilizou essas ferramentas ?
    • By asacap1000
      Salve Galera!!! estou com um projeto onde preciso disponibilizar na intranet documentos que estão em um servidor.
      Estes documentos estão salvos em diversas pastas dividido por dias meses e anos etc etc.
      Não quero que list todos os documentos porém ele seria pesquisado.
      Exemplo: NF 123456
      No arquivo salvaram assim "cliente NF 123456.pdf", tentei utilzar o glob porém ele não retorna nada nem deu erro.
      Por ser em outro servidor não seu se ele consegue ler já pesquisei mas não encontrei nada sobre isso.
       
      Saberiam me ajudar com este caso:
       
      Na intranet ele terá uma busca normal de relatórios ao listar essas informações ele diponibiliza um link com o numero da NF a qual eu chamaria essa página para realizar a busca no servidor e assim abrir o arquivo no navegador..
    • By sirrocha
      Oi pessoal, tenho uma dúvida referente a geração de PDFs automáticos em uma tabela.
      Gostaria de gerar um PDF para cada linha de uma tabela, contendo as informações que aparecem na interface, mas também as que estão dentro do banco de dados e preferi não mostrar pro usuário nessa parte. 
      Perguntei em um outro fórum, porém minha pergunta foi excluída, mas não estou procurando uma resposta pronta e sim uma indicação. Sou novo no assunto e por isso não tenho uma base tão sólida pra saber o caminho para eu iniciar.
       
      Tentei utilizar um padrão do dompdf, porém, aparentemente, a dica dada funcionava apenas para o CodeIgniter. O meu site está alocado no cPanel e eu usei o próprio editor de texto de lá para tudo que fiz até agora.
      Caso necessitem de mais informações, estou a disposição.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.