PDF 内部構造 CMap 新しいページはコチラ
提供: yonewiki
| 281行: | 281行: | ||
==== '''beginnotdefchar ~ endnotdefchar''' ==== | ==== '''beginnotdefchar ~ endnotdefchar''' ==== | ||
| + | notdefは未定義値の意味です。Glyph未定義値の結果としてどのグリフ番号を使うかというものです。PDFでもよく文字化けしたような文字で□が使われることがありますが、これもフォントの動作として指定されているということです。何も設定しなければcodespaceの範囲外の無効な値はGlyph番号 0が使われます。 | ||
| + | int endnotdefchar - | ||
| + | |||
| + | srcCode dstCID endnotdefchar - | ||
| + | |||
| + | <Syntaxhighlight2 lang="text"> | ||
| + | 1 beginbfrange | ||
| + | <01> 1 | ||
| + | endbfrange | ||
| + | </Syntaxhighlight2> | ||
| + | |||
| + | のような使い方になるでしょう。 | ||
==== '''beginnotdefrange ~ endnotdefrange''' ==== | ==== '''beginnotdefrange ~ endnotdefrange''' ==== | ||
| + | Glyph未定義値の結果としてどのグリフ番号を使うかというものの一括版です。何も設定しなければ | ||
| + | |||
| + | int endnotdefrange - | ||
| + | |||
| + | srcCodeLo srcCodeHi dstCID endnotdefrange - | ||
| + | |||
| + | <Syntaxhighlight2 lang="text"> | ||
| + | 1 beginbfrange | ||
| + | <01> <1F> 1 | ||
| + | endbfrange | ||
| + | </Syntaxhighlight2> | ||
| + | |||
| + | のような使い方になるでしょう。 | ||
==== '''beginrearrangedfont ~ endrearrangedfont''' ==== | ==== '''beginrearrangedfont ~ endrearrangedfont''' ==== | ||
| + | 再配置したフォントを1つにまとめて使う場合の定義です。どのフォントからどれを使うかはこれまでに紹介した方法で定義する必要があります。割り当てを定義するオペレータを使う都度、usefontオペレータで対象のフォントを配列にしていた順番で割り当てられる番号で指定する必要があります。 | ||
| + | |||
| + | |||
| + | /newFontName [component fonts array] beginrearrangedfont - | ||
| + | |||
| + | srcCodeLo srcCodeHi dstCID endnotdefrange - | ||
| + | |||
| + | <Syntaxhighlight2 lang="text"> | ||
| + | /Jun101-Light-K-G-R-83pv-RKSJ-H | ||
| + | [ | ||
| + | /Jun101-Light-83pv-RKSJ-H | ||
| + | /Poetica-ChanceryIV | ||
| + | /ShinseiKai-CBSK1-83pv-RKSJ-H | ||
| + | /FutoGoB101-Bold-83pv-RKSJ-H | ||
| + | /FutoMinA101-Bold-83pv-RKSJ-H | ||
| + | /HSMinW3Gai30 | ||
| + | ] beginrearrangefont | ||
| + | </Syntaxhighlight2> | ||
| + | |||
| + | のような使い方になるでしょう。5つのCIDフォントが再配置されて、/Jun101-Light-K-G-R-83pv-RKSJ-Hとして機能することを意味しています。 | ||
==== '''beginusematrix ~ endusematrix''' ==== | ==== '''beginusematrix ~ endusematrix''' ==== | ||
| + | フォントを移動拡大縮小回転歪み変形させる処理です。斜体文字を演算によって作り出すだけの手法はCMapによって実現できます。実際は専用の斜体文字の見た目の良さには勝てません。文字の詰め方や斜体独特の文字のつぶれ方の補完を実施したほうが美しいと感じます。 | ||
| + | |||
| + | |||
| + | fontID beginusematrix | ||
| + | |||
| + | [a b c d tx ty] endusematrix | ||
| + | |||
| + | <Syntaxhighlight2 lang="text"> | ||
| + | 1 beginusematrix % 1はフォント番号 | ||
| + | [1 0 0 1 0 0.15] beginrearrangefont | ||
| + | </Syntaxhighlight2> | ||
| + | |||
| + | のような使い方になるでしょう。配列の0.15にあたる部分は縦方向の移動量を示していて1が1000emとなるような単位系です。配列は行列を使った移動拡大縮小のメカニズムで[[PDF 内部構造 テグラフィック|PDF内部構造のグラフィックの部分]]で説明済なので、ここでは説明しません。 | ||
| + | |||
| − | |||
[[PDF 内部構造 テキスト#/ToUnicode|PDF 内部構造 テキスト]]へ戻る。 | [[PDF 内部構造 テキスト#/ToUnicode|PDF 内部構造 テキスト]]へ戻る。 | ||