Tips

外国語をラベル印刷で扱う

日付2010/10/06
ID10-015
バージョン11, 12
プラットフォームWin & Mac

この記事は、最新ではないバージョンに関連した方法について解説しています。

最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。

ラベル印刷で印刷できるのは、Shift JISで定義された文字のみになります。これはラベル機能の仕様で、ラベル機能がShift JISで印刷を行っているために発生します。

しかし、全く印刷できないという訳ではありません。その方法は2つあります。

ラベルエディタでフォームを指定した場合、特に文字コードを気にすること無くそのまま印刷することができます。もしどうしてもラベルエディタで、自由にフィールドを配置してデザインを行えるようにしたいという場合には、SVGを使う方法があります。

ラベル印刷でSVGを使うためには、印刷対象となるテーブルにSVGを収めるピクチャフィールドを用意します。このピクチャフィールドに印刷するフィールドの文字列をSVG化して保存し、ラベル印刷でそのピクチャフィールドを印刷するようにデザインするようにします。

印刷文字列フィールドをSVG化するコード

SVGを作成するには、SVGコンポーネントを利用するのが簡単です。実際のコードは次のようになります。

$ref_svg:=SVG_New 
$ref_svgObj:=SVG_New_text ($ref_svg;[Table]Text_data)
SVG_SET_FONT_FAMILY ($ref_svgObj;"Microsoft JhengHei")  `簡体字中国語 for Windows7
//SVG_SET_FONT_FAMILY ($ref_svgObj;"Hei")  `簡体字中国語 for Mac
[Table]Pict_for_SVG:=SVG_Export_to_picture ($ref_svg)
SVG_CLEAR ($ref_svg)

このコードの3行目に注目してください。この例の場合には中国語を印刷するために、中国語のフォントをSVGオブジェクトに設定しています。もし他の外国語を印刷する場合には、印刷する言語用のフォントを指定してください。

実際の印刷

この例では、中国語が収められたフィールドを取り扱うことにします。下の図は、入力されているデータを表示した所です。上のフィールドは文字型で、下のフィールドはピクチャ型フィールドで、すでにSVG化された文字列が見えています。

次に印刷に使うラベルをデザインします。ラベルエディタで次のように文字型とピクチャ型の2つのフィールドを配置しました。上が文字型、下がピクチャ型です。

これを実際に印刷してみますと、次のようになります。

上側の文字型フィールドはラベル印刷において、文字化けをしてしまいました。しかし下側のピクチャ型フィールドは文字化けすること無く印刷されています。

このようにSVGを利用することで、ラベル印刷でも外国語を使うことは可能です。