バグ報告 > フロント機能 > 帳票の作成時にFPDF error |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
mintoman |
投稿日時: 2013/4/6 21:30
対応状況: −−−
|
新米 登録日: 2013/4/6 居住地: 投稿: 3 |
帳票の作成時にFPDF error EC-CUBE:2.12.3
DB:MySQL 5.5.29 Apache:2.2.23 PHP:5.3.20 受注管理よりある注文番号の帳票を個別出力すると、 下記メッセージが出力され、PDF出力が失敗してしまいます。 ※画面上には、下記メッセージのみ出力されています。 FPDF error: Unable to find object (17, 0) at expected location まったく同様のエラーが2.11.1 のときにもあったようですが、解決策が不明で、困っています。 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=7938&forum=11 上記URLの書き込みにもあるとおり、原因は、data/module/fpdi/pdf_parser.php の552行目のif文にてチェックされエラーとなっています。 if (preg_match('/'.$toSearchFor.'/', $c->buffer)) { たしかに各変数値を確認すると、 print_r($c→buffer); 7 0 obj << /Type /Catalog /Pages 1 0 R /Names << /Dests 16 0 R >> /Metadata 37 0 R >> endobj 1 print_r($toSearchFor); 17 0 obj となり、正規表現上マッチしません。 これはバグだと考えて間違いないでしょうか? このようなバグ情報はいくら調べて出てこないため、サーバ環境に依存するものでしょうか? 何かご存じの方がいらっしゃいましたら、コメントよろしくお願いいたします。 |
seasoft |
投稿日時: 2013/4/7 3:04
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7365 |
Re: 帳票の作成時にFPDF error 「ある注文番号」のみとなりますと、そのデータ持っていない人が解決するのは難しいケースとなりそうです。
本質的には、「注文番号」は重要ではなく、注文番号に付随する受注情報にポイントがあるのではないかと感じます。 例えば「特定の文字を含む」「特定の文字で終わる」「特定の文字の組み合わせを含む」など。 そのパターンが明らかになれば、EC-CUBE の開発プロジェクトでの対応もでき得るように思います。 > このようなバグ情報はいくら調べて出てこないため、サーバ環境に依存するものでしょうか? 現時点では、その懸念も排除すべきではないと思います。 よって、サーバ環境などは、極力情報共有しておく方が良いように思います。 (参考) http://xoops.ec-cube.net/modules/tinyd0/index.php?id=8
|
mintoman |
投稿日時: 2013/4/7 10:03
対応状況: −−−
|
新米 登録日: 2013/4/6 居住地: 投稿: 3 |
Re: 帳票の作成時にFPDF error コメントありがとうございます。
一部情報が被りますが、再度テンプレートに合わせてサーバ環境を記載いたします。 ------------------------------------------------------------------------------------------ [EC-CUBE] 2.12.3 (新規インストール) [レンタルサーバ] AWS EC2 [OS] Amazon Linux (3.2.38-5.48.amzn1.x86_64) [PHP] PHP 5.3.20 [データベース] MySQL 5.5.29 [WEBサーバ] Apache 2.2.23(Amazon) [ブラウザ] IE 9.0.8112 / Chrome 26.0.1410 [現象] 1.管理者(admin)でログイン後、[受注管理]-[受注管理]を選択。 2.検索条件設定には何も入力せず、[この条件で検索する]を選択。 3.画面下部に表示される検索結果一覧から任意のものの帳票列[個別出力]を選択。 4.帳票の作成では、Default設定のまま[この内容で作成する]を選択。 5.FPDF error: Unable to find object (17, 0) at expected location が出力される。 ------------------------------------------------------------------------------------------ [現象]の2.では、検索条件に例えば[お名前]や[対応状況]に決済処理中などを選択して出力させた検索結果一覧から行っても同様のエラーとなります。 同じく、4.帳票の作成にて[ダウンロード方法]を"ブラウザに開く"でも"ファイルに保存"でも同じエラーとなります。 ------------------------------------------------------------------------------------------ サーバ環境としては、EC-Cube用のサーバとして EC2x1台を借りており、DBもWebと同居させています。 言語は、UTF-8をすべての言語設定で行っています。 サーバ証明書も対応済み。 その他必要な情報がありましたら、ご教示ください。 |
AMUAMU |
投稿日時: 2013/4/10 4:27
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 帳票の作成時にFPDF error 該当の部分はFPDIでPDF構造に関わるデータを読み出す部分だと思います。
EC-CUBEに直接関係が無さそうな部分でFPDIの挙動に関する部分なのですが、デバッグ出力の内容的に本来は$c->bufferには構造に関する部分へのポインタがセットされるはずが、ズレているということになります。 ポインタがずれる原因はいくつか考えられますが以下のパターンのいずれかの可能性が高いです。 (1)どの注文データでも必ず起こる場合 その1 元となるPDFファイル(標準では nouhinsyo1.pdf)が壊れている可能性が高いです この壊れる症状が起きやすいのはFTPでファイルアップロードして、ASCIIモードで転送してしまった場合です。 FTPソフトによっては、PDFファイルを間違ってASCIIモードでアップロードしてしまいます。 PDFファイルはバイナリモードでアップロードする必要があるので、転送モードを確認の上、アップロードし直すと直ると思います。 (2)どの注文データでも必ず起こる場合 その2 カスタマイズをしていて、元となるPDFファイルのファイル名に日本語を使っている場合、環境によって生じる場合があります。 この場合は英文字だけのファイル名でPDFファイルの指定をして下さい。(念のため日本語ファイル名でPDFファイル自体を作成した場合は、英文字で作ったほうが良いかもしれません) (3)特定のいくつかの注文データだけで起こる場合 正常にPDFが出力出来る場合もある時は、PDFファイルの中または受注データの中に機種依存文字やUTF-8でしか表現出来ない文字が入っている場合があるとポインタが正常に掴めなくなり異常データになる場合があります。 受注データ、ショップの名前データ等PDFファイルに出力する可能性があるデータ部分に機種依存文字や外字などを利用していないか、カスタマイズしていてPDFファイルに何らかの日本語を入れている場合は該当するような文字が無いか確認されると良いと思います。 何れの場合でも無く再発する場合、環境と言うより元としようとしているPDFファイルとFPDIの間で、何かしらの不具合に当たっている可能性があるためEC-CUBEでフォロー出来る可能性は低いかもしれません。 また、ほぼ同様のAmazon EC2環境で標準状態のEC-CUBEでは再現しませんでした。
|
mintoman |
投稿日時: 2013/4/10 11:36
対応状況: −−−
|
新米 登録日: 2013/4/6 居住地: 投稿: 3 |
Re: 帳票の作成時にFPDF error 解決しました。
コメント頂いた内容から(1)が該当しており、 /var/www/html/data/Smarty/templates/admin/pdf配下の PDFファイル、およびロゴを置き換えたところ、 正常にPDF出力されるようになりました。 ※ ファイルサイズも明らかに違っており、 ファイルが壊れていた模様です。 ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |