質問 > 管理機能 > 納品書の表示で、備考欄が改行されてない。 |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
seasoft |
投稿日時: 2013/4/6 15:31
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 納品書の表示で、備考欄が改行されてない。 引用:
改修してみました。 http://svn.ec-cube.net/open_trac/changeset/22778
|
ゲスト |
投稿日時: 2013/4/6 14:13
対応状況: −−−
|
Re: 納品書の表示で、備考欄が改行されてない。 引用:
sumida 様とのやり取りの中でも話題に上がっておりますので、ご参照ください。 はい、参照させて頂きながら、ロジックを追っています。 老頭、かつ、ここ8ヶ月程、java脳でしたので、 本件は、eccubeにおいても、稀な程の多重(?)extendsなものなので、リハビリに、もうしばらく時間がかかりそうです。。。 引用: 今週末は少し時間をとれそうなので、ザックリと改修案をコミットしてみようかと思っています。 よろしくお願い致します。。。 |
|
seasoft |
投稿日時: 2013/4/6 5:25
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 納品書の表示で、備考欄が改行されてない。 Ringo 様
sumida 様とのやり取りの中でも話題に上がっておりますので、ご参照ください。 今週末は少し時間をとれそうなので、ザックリと改修案をコミットしてみようかと思っています。
|
ゲスト |
投稿日時: 2013/4/5 21:56
対応状況: −−−
|
Re: 納品書の表示で、備考欄が改行されてない。 2byteコードを扱う前提での、japanese.phpのロジックには、今のところ異常は見受けられていません。
sjismulticellにutf-8を突っ込んでも、pdfが文字化けしないのはなぜ? sjisに変換して突っ込むと文字化けするのはなぜ? を、ちょっと、追ってます。 |
|
sumida |
投稿日時: 2013/4/2 10:59
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: 納品書の表示で、備考欄が改行されてない。 確かに、備考欄で、半角カナを入れると、全角になりました。
MultiCell に直接、半角カナを渡すと、表示も半角カナになりました。 ただ、UTF-8で半角カナも3byte文字になるので、表示される長さも当然半分の部分で自動改行されました。 いまのところ、半角カナを使用する予定がないので、参考までに。
|
seasoft |
投稿日時: 2013/4/2 9:24
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 納品書の表示で、備考欄が改行されてない。 最終的な出力までに SJIS を通るならば、そのタイミングの問題かなと思っています。(最後まで UTF-8 で通せるならば理想だと思いますが・・・)
半カナは、(フォーム入力の処理クラスによって) 文字レベルで、全角に変換されているといった事は無いですか?
|
sumida |
投稿日時: 2013/4/2 6:53
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: 納品書の表示で、備考欄が改行されてない。 ということは、SJISMultiCell で行っている「SJIS の文字分割」の部分を、
「UTF-8 の文字分割」に変更しなければならないですね。 参考までに、備考欄に半角カナをいれると、文字の大きさが全角サイズになりました。 半角の場合も $l += 500; --> $l += 1000; にする必要が。 |
seasoft |
投稿日時: 2013/4/2 4:17
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 納品書の表示で、備考欄が改行されてない。 > SJISMultiCell の中で、分割した文字列を $this->Cell で書いているので、この段階で SJIS に変換されているのでは?
はい。私もその理解です。 実際には漢字とは限らないので、マルチバイト文字列関数を使うのが良いようにも局所的には思いますが、メソッド全体を見ると、それも微妙ですね・・・ Cell 内での変換を抑制するフラグ(クラス変数?)を持たせて、SJISMultiCell をオーバライドしますかね。少々複雑になりますが、SC_Helper_FPDI#SJISMultiCellForFancyTable あたりも同じルーチンに書き換えれば、全体としては整理される予感も。
|
sumida |
投稿日時: 2013/4/1 16:36
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: 納品書の表示で、備考欄が改行されてない。 ん〜。
japanese.php SJISMultiCell の $s を$s[$i] で追いかけてゆくと、漢字の部分は、3byteでカウントしないと、うまくいきません。
SJISMultiCell の中で、分割した文字列を $this->Cell で書いているので、この段階で SJIS に変換されているのでは? |
seasoft |
投稿日時: 2013/4/1 6:55
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 納品書の表示で、備考欄が改行されてない。 SC_Helper_FPDI::Cell (オーバーライドメソッド) で変換され、SJIS になっていたと思います。
本当は、UTF-8 で通せするとスマートだと思いますけどね。継承しているライブラリの関係で現状 SJIS です。
|
(1) 2 3 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |