-
-
Notifications
You must be signed in to change notification settings - Fork 163
Ajuda com xampp/linux - xammp/linux help #102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Olá @mithophir , verifique se o seu arquivo .jrxml está no local que você indicou, confira também os parâmetros caso use esse recurso, revise seu código, não parece haver nenhum problema com PHPJasper no momento. |
Hello @mithophir, check if your .jrxml file is in the place indicated, check also the parameters if you use this feature, check your code, there does not seem to be any problem with PHPJasper at the moment. |
qual a versao do seu php |
veja isso |
tente isso: env('DB_CONNECTION'), 'host' => env('DB_HOST'), 'port' => env('DB_PORT'), 'username' => env('DB_USERNAME'), 'password' => env('DB_PASSWORD'), 'database' => env('DB_DATABASE'), 'jdbc_dir' => base_path() . env('JDBC_DIR', '/vendor/lavela/phpjasper/src/JasperStarter/jdbc'), ]; } public function index() { // coloca na variavel o caminho do novo relatório que será gerado $output = public_path() . '/reports/' . time() . '_Clientes'; // instancia um novo objeto JasperPHP $report = new JasperPHP; // chama o método que irá gerar o relatório // passamos por parametro: // o arquivo do relatório com seu caminho completo // o nome do arquivo que será gerado // o tipo de saída // parametros ( nesse caso não tem nenhum) $report->process( public_path() . '/reports/Customers.jrxml', $output, ['pdf'], [], $this->getDatabaseConfig() )->execute(); $file = $output . '.pdf'; $path = $file; // caso o arquivo não tenha sido gerado retorno um erro 404 if (!file_exists($file)) { abort(404); } //caso tenha sido gerado pego o conteudo $file = file_get_contents($file); //deleto o arquivo gerado, pois iremos mandar o conteudo para o navegador unlink($path); // retornamos o conteudo para o navegador que íra abrir o PDF return response($file, 200) ->header('Content-Type', 'application/pdf') ->header('Content-Disposition', 'inline; filename="cliente.pdf"'); } } |
Bom, eu fiz vários debugs durante essa semana e tudo me leva a crer que o problema seja algo relacionado ao uso do exec dentro da classe ou algo inerente a como o xampp executa o "jasperstarter.jar". Como eu disse anteriormente o compilador php rodando no linux funciona corretamente sem nenhum problema, gerando o pdf conforme os dados, mas pelo apache server não. Eu já fiz testes usando relatórios sem acesso a banco, passando caminhos não-relativos nos códigos, mas parece que o problema está na questão de que com a função execute() rodando no server através de uma chamada POST não gera um arquivo de saída. `<?php //$idR = mysqli_real_escape_string($conn, $_POST['idR']); $input = DIR . '/report/reportMon.jrxml'; $options = [ $jasper = new PHPJasper; $jasper->process( echo 'a href="/report/reportMon.pdf" target="_blank" download>Download Aqui</a';` Eu acredito que possar ser algo muito simples ou algo muito especifico porque eu estou vindo aqui já que realmente eu não acho nenhuma forma de resolver esse problema para gerar a partir da pagina web da minha aplicação. |
Eu estou faz já algum tempo tentando resolver uma forma de gerar um pdf através do Jasper Report através de uma aplicação web mas estou tendo problemas com isso. Usando o compilador do Linux de php eu consigo gerar o pdf normalmente porém quando eu faço a chamada via jquery ele ocorre o seguinte erro:
"Fatal error: Uncaught PHPJasper\Exception\ErrorCommandExecutable: Your report has an error and couldn 't be processed!\ Try to output the command using the function
output();
and run it manually in the console. in /var/www/html/vendor/geekcom/phpjasper/src/PHPJasper.php:219 Stack trace: #0 /var/www/html/reportMonitoria.php(45): PHPJasper\PHPJasper->execute() #1 {main} thrown in /var/www/html/vendor/geekcom/phpjasper/src/PHPJasper.php on line 219"Utilizando o output() em vez do execute() eu consigo a saída esperada mesmo pelo browser.
O que eu queria fazer com ele era simplesmente utilizar o jrxml para gerar um pdf e disponibilizar para baixar segundo os dados enviados do cliente. Eu acreditava que fosse algum problema de permissões do Linux a principio mas eu já tentei resolver e parece não ser a origem do problema.
The text was updated successfully, but these errors were encountered: