前提・実現したいこと
はじめて質問させていただきます。
現在、Laravel 7でシステムを作成しています。
システム内で、JasperReportを使用したPDF出力を作成しており、
初めてPHPJasperをインストールして使用してみたのですが、
PDF出力時に「Undefined offset: 0」のエラーが発生し、解決策が見つかりません。
Laravelでの開発もまだ日が浅く、初歩的なことかもしれませんが、どなたかお力添えを頂ければと思います。
よろしくお願いいたします。
参考にしたサイト:https://github.com/PHPJasper/phpjasper-laravel
発生している問題・エラーメッセージ
Undefined offset: 0 {"exception":"[object] (ErrorException(code: 0): Undefined offset: 0 at /var/www/html/vendor/geekcom/phpjasper-laravel/src/PHPJasper.php:222)"}
該当のソースコード
require $_SERVER['DOCUMENT_ROOT']. "/vendor/autoload.php"; use PHPJasper\PHPJasper; class TestController extends Controller { public function index() { $jasper = new PHPJasper; $input = base_path("./vendor/geekcom/phpjasper-laravel/jasper/report1.jasper"); $output = $_SERVER['DOCUMENT_ROOT'] . "storage/test"; $options = [ 'format' => ['pdf'], ]; $jasper->process( $input, $output, $options )->execute(); } }
※上記ソースは、実ソースからの転載のため、パスが一部おかしい箇所があるかもしれません。
フォルダ、モジュールのパスについての確認はできております。
エラー発生個所
public function execute($user = false) { $this->validateExecute(); $this->addUserToCommand($user); $output = []; $returnVar = 0; chdir($this->pathExecutable); exec($this->command, $output, $returnVar); if ($returnVar !== 0) { //throw new \PHPJasper\Exception\ErrorCommandExecutable(); throw new \Exception("{$output[0]}", 1); } return $output; }
上記の「throw new \Exception("{$output[0]}", 1);」でエラーが返っておりました。
試したこと
$jrxml = base_path("./vendor/geekcom/phpjasper-laravel/examples/hello_world.jrxml");
$jasper->compile($jrxml)->execute();
と、jrxmlをコンパイルしてみましたが、コンパイルの際にも、「Undefined offset: 0」が発生しております。
補足情報(FW/ツールのバージョンなど)
composer.json
"geekcom/phpjasper-laravel": "^1.1",
〇サーバー
java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。