EA
PDF é gerado com erro só em ambiente de produção
Quando gero o PDF em "localhost" tudo funciona bem contudo ao "subir" para o servidor os dados do cliente não são preenchidos.
Já verifiquei e os dados são obtidos das tabelas corretamente ,,, alguém já passou por algo assim ?
Já verifiquei e os dados são obtidos das tabelas corretamente ,,, alguém já passou por algo assim ?
- <?php
- // replace the main section variables
- $html->enableSection('main', $venda->toArray());
- // replace the product section variables
- $html->enableSection('cliente', $cliente->toArray());
- // replace the product section variables
- $html->enableSection('itens', $replaces, TRUE);
- $contents = $html->getContents();
- // converts the HTML template into PDF
- $dompdf = new \Dompdf\Dompdf();
- $dompdf->loadHtml($contents);
- $dompdf->setPaper('A4', 'portrait');
- $dompdf->render();
- // write and open file
- file_put_contents('app/output/document.pdf', $dompdf->output());
- // open window to show pdf
- $window = TWindow::create(('Venda'), 0.8, 0.8);
- $object = new TElement('object');
- $object->data = 'app/output/document.pdf';
- $object->type = 'application/pdf';
- $object->style = "width: 100%; height:calc(100% - 10px)";
- $window->add($object);
- $window->show();
- ?>
Eli, talvez não seja o mesmo problema que eu encontrei, porem não custa compartilhar, talvez ajude...
criei uma extensão para que cada momento que eu gere a informação (relatório), sempre crie um novo arquivo.
no ambiente local estava correto, levando para o ambiente produção (LINUX) não rodava de maneira alguma.
no caso que eu fiz, logicamente vou encontrar problemas com excesso de arquivos na pasta output, porem resolveu meu caso
só complementando, pelo que vi, o linux mantem no browser os últimos dados se caso o relatório for similar (nomes, etc) e não sobrepõe
talvez seja caso de permissão, também mudei ate para 777 e mesmo assim não funcionou....
da forma que esta acima resolveu o problema, talvez alguém tenha uma alternativa mais interessante....
Agradeço muito compartilhar sua experiência para me auxiliar Marcelo. Não descrevi corretamente o erro ... o arquivo é gerado contudo as informações do cliente não são substituídas no 'template' quando no ambiente de produção (hospedagem na LocaWeb) enquanto as demais sim (dados da venda e produtos correspondentes) . O problema ocorre na linha 6 do código que postei (
ola Eli
mas como criou esse objeto $cliente ??
No ambiente Linux não existe tanto faz maiusc. ou minusc.
e no html existe os <!--[cliente]--> ... <!--[/cliente]-->
Sim Luís, tenho o cuidado de observar a exatidão na nomenclatura utilizada. Abaixo está parte do código HTML utilizado no template. Como mencionei em localhost tudo funciona já na hospedagem os dados da venda e dos produtos são substituídos pelos dados das tabelas correspondentes corretamente mas os do cliente não. Testei criando uma variável para receber o conteúdo do método $cliente->toArray() de forma a poder verificar se continha os dados no formato correto apesar de, como já informei, em localhost funcionar normalmente. Utilizei dita variável para passagem dos dados ao template mas foi em vão ... o problema persiste.
faço assim: