Processando saída de variável PHP dynamic com domPDF

Eu tenho trabalhado em um script onde eu deveria criar um PDF a partir de dados criados dinamicamente de uma página. Após algumas pesquisas, decidi usar o domPDF. Atualmente use CodeIgniter como minha estrutura, então eu criei esse tutorial . Então, a partir deste tutorial, obtive o seguinte conjunto de códigos para o controlador.

Controlador: dompdf_test.php – Isso será usado para gerar o PDF real com base na visualização carregada.

class Dompdf_test extends CI_Controller { public function index() { // Load all views as normal $this->load->view('summary/index'); // Get output html $html = $this->output->get_output(); // Load library $this->load->library('dompdf_gen'); // Convert to PDF $this->dompdf->load_html($html); $this->dompdf->render(); $this->dompdf->stream("SavedData.pdf"); } } 

Controlador: dompdf_view.php – Esta é apenas a página a ser acessada que será convertida em PDF

 class Dompdf_view extends CI_Controller { public function index() { $this->load->view('summary/index'); } } 

Biblioteca: dompdf_gen.php – Localizado no aplicativo / bibliotecas

 class Dompdf_gen { public function __construct() { require_once APPPATH.'third_party/dompdf/dompdf_config.inc.php'; //this is where the whole dompdf plugin is located $pdf = new DOMPDF(); $CI =& get_instance(); $CI->dompdf = $pdf; } } 

Então, aqui vai: a página que eu quero converter para PDF produz dados que são manipulados por um usuário. Os dados gerados não são do database, mas com base no que foi selecionado por um usuário. Por exemplo, o usuário selecionou Feminino como o gênero. Essa palavra “Feminino” será adicionada a uma guia de resumo (na mesma página). Todos os dados na guia de resumo serão incluídos no arquivo pdf. Eu pensei em passar esses dados para outro arquivo php, uma vez que essa página inclui muitos dados não relacionados para poupar pdf e o domPDF não suporta alguma syntax CSS (se meu entendimento estiver certo). Os dados transmitidos no referido arquivo serão a base de uma simples tabela de modelos de PDF.

Agora, aqui está o problema. Usei este código muito simples sobre a passagem de dados:

Visualizar: resumo / sourceData.php – página de exemplo em que devo inserir os dados. Todos os dados inseridos serão passados ​​no resumo / exibição de índice.

 
//dompdf_view is simply the summary/index page




summary / index.php – Aqui é onde os dados são passados.

  <?php $name0 = isset($_POST['name0']) ? $_POST['name0'] : ""; $name1 = isset($_POST['name1']) ? $_POST['name1'] : ""; $name2 = isset($_POST['name2']) ? $_POST['name2'] : ""; $name3 = isset($_POST['name3']) ? $_POST['name3'] : ""; $name4 = isset($_POST['name4']) ? $_POST['name4'] : ""; echo $name0.'

'; echo $name1.'

'; echo $name2.'

'; echo $name3.'

'; echo $name4.'

'; ?> <a href="">Save as PDF

Os dados de summary / sourceData.php são passados ​​para summary / index.php, mas quando eu tento salvar summary / index.php para pdf, ele salva, mas não obtém nenhum dado. É apenas um documento PDF EM BRANCO, exceto a palavra Salvar como PDF.

Eu pesquisei e tentei adicionar, mas ainda sem sorte.

Não é possível domPDF ler arquivos php echo? Se não, como?

Ainda não tenho ideia sobre como poderei salvar esses dados em pdf. Ou, existe outra maneira de passar esses dados?

NOTA: O código acima está funcionando se a página for estática. Mas quando eu adiciono dados dynamics, ele não lê os resultados do PHP dessa página dentro do arquivo PDF.

Qualquer ajuda / conselhos serão muito apreciados.

Encontrámos uma solução para o meu problema. Os dados enviados não foram passados ​​para o controlador, por isso está em branco. O que fizemos foi que enviamos os dados através da input e adicionamos o seguinte no controlador:

 $html = $this->load->view('summary/index', $data, true); 

Obrigado por toda a ajuda! 🙂

Quando você está gerando seu pdf clicando no link “Salvar como PDF”, você aciona uma nova solicitação da visualização de índice / índice de visualização sem nenhum parâmetro POST. Então seu controlador para isso está gerando o pdf é chamado de lado do servidor e torna a exibição de índice de resumo para geração de pdf, mas agora sem parâmetros de postagem. É por isso que o seu pdf está vazio. Você pode replace

 Save as PDF 

com:

  if($_POST['submit']!='Save as PDF'){ ?> 





Isso deve dar uma dica sobre o dompdf funciona.

  //File when you gererate $html $dir = dirname(__FILE__); require_once($dir.'/file_to_generate_html_from_php.php'); // Load the dompdf files require_once($dir.'/include/dompdf/dompdf_config.inc.php'); $dompdf = new DOMPDF(); // Create new instance of dompdf $dompdf->load_html($html); // Load the html $dompdf->render(); // Parse the html, convert to PDF $pdf_content = $dompdf->output(); // Put contents of pdf into variable for later 

file_to_generate_html_from_php.php – Deveria parecer algo assim.

 $html = '      '; $html .='

Report

'; $html .=' ';

Você também pode executar o código php para gerar $ html dentro de file_to_generate_html_from_php.php

 $SQLQUERY= mysql_query("SELECT * FROM table WHERE Column = '$variable'") or die(mysql_error()); while($row = mysql_fetch_array( $SQLQUERY)) { // echo out the contents of each row into a table if(empty($row['Column'])){ $html .= '

No results!

'; } else{ $html .= '
Yes we found this: '.$row['Column'].'

'; } }