Erro ao exportar para PDF

Bom pessoal há dias que tento fazer com que o scriptcase exporte consultas para PDF.

Eu segui os seguintes passos SEM ÊXITO

-Permissão 777 em todos os diretórios do scriptcase
-Configuração disable_function do php correto (não está desabilitando nenhuma função do PHP)
-Configuração safe_mode do php como Off
-SELinux desabilitado
-JRE instalado

Estou usando o Ubuntu 9.04

Se alguém tiver mais alguma solução ficarei agradecido. Obrigado desde já!

Olá Kásio, bom dia…

Eu também sofri pra fazer as consultas exportarem em PDF no linux, só consegui com a ajuda do pessoal do suporte da netmake…

Acredito que o problema seja na instalação do JRE. Dá uma conferida no arquivo php.ini, procure pela linha include_path e confira se tem alguma informação sobre o local de instalação do JRE:

[tt]$cat /etc/php5/apache2/php.ini | grep include_path
include_path = “.:/usr/share/php:/usr/lib/jvm/java-1.5.0-sun/jre/lib/i386:/usr/lib/jvm/java-1.5.0-sun/jre/lib/i386/server”[/tt]

Se não tiver nada parecido com isso, vc terá que colocar o path do JRE para o php carregar ele corretamente! Outro detalhe é a versão do PHP, se não me engano tem que ser superior a 5.2.6.

Se vc quiser disponibilizar o relatório do diagnosis (ajuda -> diagnosis) pro pessoal aqui do forum dar uma olhada, já facilita bastante… ou então envie ele pro suporte da netmake que eles já lhe dizem o problema também!

Espero ter ajudado…

Att.
Robson

Opa Robson obrigado pela resposta, tinha esquecido até de colocar na minha pergunta inicial mas

eu também coloquei o path para o JRE no include_path do php.ini
Minha versão do PHP é exatamente 5.2.6 tem que ser superior ou pode ser igual?

obrigado!

Qual a versão que você usa?

Olá Kásio,

Eu uso a versão 5.2.11 - Apache/2.2.8 (Ubuntu) PHP/5.2.11 mod_ssl/2.2.8 OpenSSL/0.9.8g… a 5.2.6 funciona normalmente, eu tive problemas quando instalei pelo apt-get e a versão mais recente nos repositórios era a 5.2.4…

Me diga uma coisa… no diagnosis não aparece nenhum problema?

E está dando algum erro ao gerar o PDF ou ele simplesmente “trava” na metade da “barra de progresso” da geração?

Att.
Robson

Obrigado por estar me ajudando Robson

Olha no diagnosis não acontece nenhum problema. Ele não trava, vai até 100% porém quando vou visualizar o arquivo tanto o Adobe Reader 8 quanto o Foxit diz que o arquivo está corrompido ou formato incorreto.

Obrigado desde já a atenção dada!

Kásio,

Após tentar gerar o PDF, veja na pasta “temp” (_lib/tmp) e procure pelos arquivos .log e .html (com o mesmo nome da consulta que gerou o PDF).

Verifique se este arquivo HTML está com a formatação correta… e no arquivo .log tem a linha de comando que está gerando seu arquivo PDF, algo como:

java -Xms128m -Xmx256m -Djava.awt.headless=true -cp .:pd4ml.jar Pd4Php http://www....com.br/_lib/tmp/.....html 1000 A4 -orientation LANDSCAPE -permissions 2076 > /var/www/sys/_lib/tmp/....pdf

Tente executar o comando (que está no .log) no terminal e veja se o arquivo PDF será gerado corretamente…

Tive um problema parecido: http://www.netmake.com.br/forum/index.php?topic=1303.msg3999

Att.
Robson

Executei exatamente o mesmo comando que estava no arquivo de log com o mesmo nome do arquivo do pdf gerado pela consulta.

O arquivo HTML é gerado normalmente (Verifiquei)

Quando digitei no terminal do linux o comando para gerar o pdf aconteceu o seguinte erro:
root@servidor:~# java -Xms128m -Xmx256m -Djava.awt.headless=true -cp .:pd4ml.jar Pd4Php http://juvep.myftp.org/scriptcase/tmp/sc_grid_cad_geral_html_4c049b7634ba72bc3a31454578413fff.html 800 LETTER -orientation PORTRAIT -permissions 2076 > /home/juvep/public_html/scriptcase/tmp/sc_pdf_20091108192204_993_grid_cad_geral.pdf

Exception in thread “main” java.lang.NoClassDefFoundError: Pd4Php
Caused by: java.lang.ClassNotFoundException: Pd4Php
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Pd4Php. Program will exit.

Esse erro também acontece aqui, mas mesmo assim o pdf é gerado normalmente… é estranho que no seu caso está gerando um arquivo PDF vazio!

Qual a versão do JRE instalado?
[tt]$ java -version
java version “1.6.0_14”
Java™ SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot™ Client VM (build 14.0-b16, mixed mode, sharing)[/tt]

ahh… tentei rodar o comando aqui, pra gerar seu arquivo html em um arquivo PDF… e deu o mesmo problema! Gerou um arquivo PDF vazio (e aqui funciona normalmente a exportação em PDF)… Portanto imagino que o problema não seja no Java!

Dá uma verificada em algumas configs no teu php.ini:
[tt]$ cat /etc/php5/apache2/php.ini | grep memory_limit
memory_limit = 128M[/tt]

[tt]$ cat /etc/php5/apache2/php.ini | grep max_
max_execution_time = 1500
max_input_time = 60
post_max_size = 8M

[/tt]

Att.
Robson

Opa!
Andei um pouco ocupado!

java version “1.6.0_14”
Java™ SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot™ 64-Bit Server VM (build 14.0-b16, mixed mode)

Eu tive que mudar apenas o
max_execution_time para 1500 o restante tava igual

Continua o mesmo erro
srsrsr

Bom Dia,

Você tentou setar variáveis de ambiente?
Existe um tópico parecido onde, no caso dele, foi solucianado… você já tentou os passos descritos neste tópico

http://www.netmake.com.br/forum/index.php?topic=1312.0

?

Rodrigo Lins.

Estou com o mesmo problema do post citado no link enviado acima. ja adicionei a variavel ambiente JRE mas quando mando gerar o PDF ele me informa o segunte erro

“Devido a uma mudança no mecanismo de geração de arquivos PDF, é necessário que O JRE esteja instalado e acessível ao PHP através do PATH do sistema. Contacte o administrador do servidor a respeito desta mudança.”

como faria para resolver esse problema.
OBS: ambiente windows

Eu estava com o mesmo problema, e descobri que o erro era no meu arquivo /etc/hosts que tinha um ip deferente do atual do meu domínio. Como na hora de gerar um pdf ele abre localmente, o próprio servidor faz uma chamada de um arquivo temporário.

Vejam:

java -Xms128m -Xmx256m -Djava.awt.headless=true -cp .:pd4ml.jar Pd4Php http://meudominio.com.br:85/scriptcase/tmp/sc_grid_clientes_cli_1_html_fb4ltopli25hgtrfv44lfaoj65.html 800 LETTER -orientation PORTRAIT -permissions 2076 > /opt/nm/www/scriptcase/tmp/sc_pdf_20111110104650_729_grid_clientes_cli_1.pdf

O domínio meudominio.com.br de fora do servidor resolvia o ip correto, mas de dentro resolvia um endereço antigo que estava no /etc/hosts

Foi só corrigir isso no arquivo /etc/hosts e o problema foi resolvido.

Estou contratando esse serviço na LOCAWEB (JVM DEDICADO). Gostaria so de estar confirmando se é esse mesmo, para eu gerar os PDFs corretamente nas minhas consultas. O problema é que o preço é SALGADINHO pra caramba… + 50,00 mensais, aff