[ruby-list:39019] Re: ja font patch for pdf-writer-TP20030916

From: Noritsugu Nakamura <nnakamur@...>
Date: 2004-01-03 15:07:50 UTC
List: ruby-list #39019
中村 のりつぐ です。

In article <20040102000218E.nnakamur@mxq.mesh.ne.jp> 
Noritsugu Nakamura <nnakamur@mxq.mesh.ne.jp> wrote:
> pure ruby な PDF file generator の pdf-writer-TP20030916
> で日本語を出力できるようにするパッチを書いてみました。
> 
> 
> □ 場所
> 
> pdf-writer
>    http://raa.ruby-lang.org/list.rhtml?name=pdf-writer
> パッチ
>   http://www2s.biglobe.ne.jp/~Nori/ruby/dist/pdf-writer-TP20030916-ja_font_patch-20040101.diff

行替えのときに日本語が分断されてしまい化けてしまうので、
以下のパッチが必要でした。(このパッチ当てても文字幅が
ちゃんと取得できないので、どうせあふれるのですが…)


*** lib-20040101/pdf/writer.rb  Thu Jan  1 23:11:53 2004
--- lib/pdf/writer.rb   Sun Jan  4 00:02:12 2004
***************
*** 978,983 ****
--- 978,990 ----
                add_text(x, y, size, tmp, angle, adjust) unless test
                return text[brk + 1..-1]
              else # just split before the current character
+               # adjust
+               if $KCODE[0] == ?s || $KCODE[0] == ?S
+                 i -= 1 if /[\x81-\x9f\xe0-\xef]$/ =~ text[0, i]
+               elsif $KCODE[0] == ?e || $KCODE[0] == ?E
+                 # ok?
+                 i -= 1 if /([\xa1-\xfe][\xa1-\xfe])+[\xa1-\xfe]$/ =~ text[0, i]
+               end
                tmp = text[0, i]
                ctmp = text[i]
                ctmp = @fonts[cf].differences[ctmp] unless @fonts[cf].differences.nil?

       中村 典嗣  E-mail:     nnakamur@mxq.mesh.ne.jp

In This Thread