Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos Vilela Alves

Erro 500 no dompdf

Recommended Posts

Boa tarde colegas.

 

estou tendo um problema..

 

tenho no meu sistema uma página onde possibilito criação de documentos estilizados com o ckeditor.

está editando e gravando bem. esse nao é o problema..

 

o problema é, o documento gerado tem que ser disponibilizado em PDF, e quando é criado um documento muiito grande, o php depois de todo o tempo tentando gerar, retorna um erro 500.

 

deduzi, que o problema está no tamanho do arquivo a ser gerado. pois fazendo testes com pequenos textos e sem muita edição, a DOMPDF monta certinho.

 

mas ai que tá o problema. o tamanho do documento pode variar. e preciso conseguir abrir.. alguém já passou por isso e conseguiu uma solução.

 

pesquisei na internet sobre outras bibliotecas, e só vi algumas informações sobre uma tal de HTML2PDF que pelo que pude encontrar nao parece muito boa.

 

mesmo que tenham outra biblioteca para sugerir. já pode me ajudar.

 

desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passei por algo semelhante recentemente, e no caso aqui, usamos html2pdf.

 

A situação era a seguinte:

Incluir a possibilidade do usuário poder setar um parametro onde a resposta do banco de dados poderia ser de algumas centenas de milhares de linhas e transformar isso em pdf.

 

No ambiente de desenvolvimento, temos uma base de dados que ao simular essa solicitação, a resposta nos dava cerca de mil registros aproximadamente, para gerar esse pdf, ele estourava o tempo limite do servidor e o limite do tamanho do arquivo.

 

Como não havia a possibilidade de alterar parametros do php.ini, a solução encontrada foi alterar os valores do php.ini somente naquela página, via ini_set.

 

As linhas abaixo, são as usadas nessa situação:

 

 

ini_set("upload_max_filesize", "10M");
ini_set("max_execution_time", "800");
ini_set("memory_limit", "-1");
ini_set("realpath_cache_ttl", "120");

 

No final, não implementamos essa possibilidade para os usuarios desse sistema pois no nosso ambiente de desenvolvimento e testes, com esses parametros demorava cerca de 20 minutos para gerar o pdf, e após alguns estudos nos ambientes de produção dos clientes, essa solução poderia levar várias horas e consumir uma parte significante dos recursos do servidor.

 

Caso esse código resolva seu problema, antes de coloca-lo em produção, recomendo testa-lo bem pois pode ocorrer um consumo excessivo de recursos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não implementamos a funcionalidade.

 

Não havia muito a ser feito, se usar o padrão, estoura o tempo limite do servidor, se usar os valores que indiquei no ini_set, o consumo de recursos do servidor subia absurdamente e comprometia outras partes do sistema, pois se analizado apenas a geração do pdf, mesmo o aumento de recurso não impactava tanto assim, mas ao somar com vários usuários usando simultaneamente o sistema, isso já poderia causar uma leve lentidao no sistema, e conforme o numero de usuários aumentava e/ou vários usuário solicitando a mesma geração de pdf, ai o servidor poderia ter uma lentidao muito grande, ou caso não ocorresse a lentidão, a geração do arquivo levaria horas quando o desejado seria alguns poucos segundos/minutos.

 

A o lançamento da funcionalidade foi adiado pois estamos estudando outras soluções, testando outras libs de geração de pdf não só em php como em outras linguagens, e ainda estamos levantando outras possibilidades que possam gerar o pdf rapidamente mesmo com um grande quantidade de dados retornados

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.