PDF 内部構造 テキスト 新しいページはコチラ
提供: yonewiki
(→/Encoding) |
(→/Encoding) |
||
| 657行: | 657行: | ||
</tr> | </tr> | ||
</table> | </table> | ||
| + | |||
| + | |||
| + | CMapはフォントファイルにあるものなので、自分でPDFファイル生成する場合は対になるべきCMapを見つけるコツがいるってことになりますね。あるいは自分で全部の文字に対するCMapを記述するという手もありますが、いずれにしてもグリフIDと文字コードの関係は知らないと対応できません。 | ||
| + | |||
| + | |||
| + | 例えば、今回の場合は、以下のようなストリームを作ると対応するCMapを自作したことになるようです。ToUnicodeのオブジェクトとして、割り当てると、PDFでの文字選択のコピー&ペースト処理がうまく動作するようになります。 | ||
| + | |||
| + | |||
| + | <Syntaxhighlight2 lang="text"> | ||
| + | /CIDInit /ProcSet findresource begin | ||
| + | 12 dict begin | ||
| + | begincmap | ||
| + | /CIDSystemInfo | ||
| + | << | ||
| + | /Registry (Adobe) | ||
| + | /Ordering (UCS) | ||
| + | /Supplement 0 | ||
| + | >> def | ||
| + | /CMapName /Adobe-Identity-UCS def | ||
| + | /CMapType 2 def | ||
| + | 1 begincodespacerange | ||
| + | <0000> <FFFF> | ||
| + | endcodespacerange | ||
| + | 17 beginbfchar | ||
| + | <0003> <0020> % | ||
| + | <0030> <004D> %M | ||
| + | <0036> <0053> %S | ||
| + | <0838> <3044> %い | ||
| + | <084B> <3057> %し | ||
| + | <0862> <306E> %の | ||
| + | <089B> <30A9> %ォ | ||
| + | <08A1> <30AF> %ク | ||
| + | <08A6> <30B4> %ゴ | ||
| + | <08A9> <30B7> %シ | ||
| + | <08B5> <30C3> %ッ | ||
| + | <08BA> <30C8> %ト | ||
| + | <08C7> <30D5> %フ | ||
| + | <08E5> <30F3> %ン | ||
| + | <0B61> <4E16> %世 | ||
| + | <23FA> <754C> %界 | ||
| + | <2A3E> <7F8E> %美 | ||
| + | endbfchar | ||
| + | endcmap | ||
| + | CMapName currentdict /CMap defineresource pop | ||
| + | end | ||
| + | end | ||
| + | </Syntaxhighlight2> | ||
[[PDF 内部構造#説明|PDF 内部構造]]に戻る。 | [[PDF 内部構造#説明|PDF 内部構造]]に戻る。 | ||