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 内部構造]]に戻る。 |