質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JasperReports

JasperReportsはオープンソースの帳票生成ツールです。JasperReportはPDF, HTML, Microsoft Excel, ODT, XML等の様々なフォーマットのものをエクスポートします。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

1618閲覧

phpjasperのPDF出力で、「Undefined offset: 0」が出てしまう

AIA

総合スコア4

JasperReports

JasperReportsはオープンソースの帳票生成ツールです。JasperReportはPDF, HTML, Microsoft Excel, ODT, XML等の様々なフォーマットのものをエクスポートします。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/06/17 05:42

編集2020/06/17 05:49

前提・実現したいこと

はじめて質問させていただきます。

現在、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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

サーバーで、
・java -version
・参考サイトの
「$output = $jasper->listParameters($input)->execute();」
を実行した後、なぜかエラーなくPDFが出力されるようになりました。

どちらが解決策だったのかは不明ですが、もう少し様子を見てみたいと思います。

投稿2020/06/17 06:06

AIA

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問