PDF 内部構造 テキスト 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(SubType Type3の利用によるテキスト出力)
(  /DescendantFonts :/FontDescriptor : /CharSet)
 
243行: 243行:
 
</syntaxhighlight2>
 
</syntaxhighlight2>
  
 という具合にリソースの定義部で、/Fontフォントが定義され、その中で/DescendantFonts。そしてさらにその中で/FontDescriptorについての定義がされる。コメントの%KozMinは、Macのフォントの小塚明朝の場合はこんな感じの記述という例で、完全に動作するとは保証できないのであしからず。この3段論法みたいなフォント情報はひとつにまとめて書くことが出来る。まとめて記述するには、以下のような感じ。
+
 という具合にリソースの定義部で、/Fontフォントが定義され、その中で/DescendantFonts。そしてさらにその中で/FontDescriptorについての定義がされる。コメントの%KozMinは、Macのフォントの小塚明朝の場合はこんな感じの記述という例で、完全に動作するとは保証できないのであしからず。この3段論法みたいなフォント情報はひとつにまとめて書くことが出来る。まとめて記述するには、以下のような感じ。Adobe Acrobat Readerには小塚明朝が表示できる様に組み込まれていてWindowsでも使えるはずですが、自分は上手くやれませんでした。なんかもうちょっとコツがあるのかも知れない。ちな、この小塚フォントをWindowsの汎用フォントフォルダに移動して普通に使って文書に埋め込んだりして配布して使うのは規約違反らしいです。Acrobatで見るためだけに使いなさいと言う事らしい。
  
 
<syntaxhighlight2 lang="text">
 
<syntaxhighlight2 lang="text">
299行: 299行:
 
</syntaxhighlight2>
 
</syntaxhighlight2>
  
 三つを一つに纏めれましたが、この三つは意味が違うので注意が必要です。/F1という名前のフォントはType0という扱いをします。という意味合いで、このファイルでの扱いを、決めるための定義なのでこのPDFファイルのための独自情報です。ここでType0になっているのは、複数のフォントを、まとめれるという特徴があるのでよく使われるフォントタイプです。その中にある/DescendantFontsにはこういうフォントを組み合わせて使いますという具合です。Descendantは日本語で子孫という意味です。実際に利用するフォントの構造を指定しています。MSゴシックがTrueTypeのCIDフォントだということを意味しています。
+
 三つを一つに纏めれましたが、この三つは意味が違うので注意が必要です。/F1という名前のフォントはType0という扱いをします。という意味合いで、このファイルでの扱いを、決めるための定義なのでこのPDFファイルのための独自情報です。ここでType0になっているのは、複数のフォントを、まとめれるという特徴があるのでよく使われるフォントタイプです。その中にある/DescendantFontsにはこういうフォントを組み合わせて使いますという具合です。Descendantは日本語で子孫という意味です。実際に利用するフォントの構造を指定しています。MSゴシックがTrueTypeのCIDキー付きフォントだということを意味しています。実際はOpen Typeの構造に準拠していますが、TrueTypeとしても動作する様になっている形式です。OpenTypeは使えないと言うアプリケーションは多いWindowsの世界では良く取られる対処法です。
  
  
 そして、/FontDescriptorはストリームで対応する文字コードについてのフォント情報が無かったときはどのフォントは情報に従うのかという意味を持っています。Descriptorとは説明する者という意味です。
+
 そして、/FontDescriptorはストリームで対応する文字コードについてのフォント情報が無かったとき、この例ではType0フォントのMSゴシックが無い場合、どのフォントの情報に従うのかという意味を持っています。そしてどの様なフォントなのかを説明しなければなりません。Descriptorとは説明する者という意味です。
  
 
==== '''日本語PDFフォント情報のオペレータ個別の意味''' ====
 
==== '''日本語PDFフォント情報のオペレータ個別の意味''' ====
886行: 886行:
 
 1グリフ毎の横幅のデフォルト値。全グリフに適用される整数値。規定値は0
 
 1グリフ毎の横幅のデフォルト値。全グリフに適用される整数値。規定値は0
 
 font内部の指定値に左右されますが、等幅半角文字なら1024emあるいは、1000、等幅全角文字なら2048emあるいは2000emとなっているものが多いでしょう。なので最大の2048を適用しておいて、それでは、他の文字が具合が悪いので、半角文字の一文字毎に次の/Wを使って指定することになります。範囲指定できるので、それほど大変ではありません。
 
 font内部の指定値に左右されますが、等幅半角文字なら1024emあるいは、1000、等幅全角文字なら2048emあるいは2000emとなっているものが多いでしょう。なので最大の2048を適用しておいて、それでは、他の文字が具合が悪いので、半角文字の一文字毎に次の/Wを使って指定することになります。範囲指定できるので、それほど大変ではありません。
 
+
 
 /DW 2048
+
/DW 2048
  
 
====== ''' /DescendantFonts :/W''' ======
 
====== ''' /DescendantFonts :/W''' ======
957行: 957行:
  
 
====== ''' /DescendantFonts :/Subtype''' ======
 
====== ''' /DescendantFonts :/Subtype''' ======
 ここでは実際に使うフォントファイルの形式を指定します。このCIDFont辞書のエントリでは/CIDFontTye0か/CIDFontTye0のどちらかを指定します。TrueType系なら/CIDFontType2。OpenType系なら/Subtype /CIDFontType0と指定します。間違えても細かいことをしない限りか?現段階の大雑把な操作ではあまり問題はおこらないようです。
+
 ここでは実際に使うフォントファイルの形式を指定します。このCIDFont辞書のエントリでは/CIDFontTye0か/CIDFontTye0のどちらかを指定します。TrueType系なら/CIDFontType2。OpenType系なら/Subtype /CIDFontType0と指定します。間違えても細かいことをしない限りか?現段階の大雑把な操作ではあまり問題はおこらないようです。いやOpen TypeのようでTrueTypeとして動くようなフォントが多いWindowsのおかげか、
  
 
====== ''' /DescendantFonts :/FontDescriptor''' ======
 
====== ''' /DescendantFonts :/FontDescriptor''' ======
1,064行: 1,064行:
 
  </tr>
 
  </tr>
 
</table>
 
</table>
 +
 +
 +
CharSetで指定する各文字名の正式な名称は PDFリファレンスの最後の付録のあたりに記述があります。
  
 
 
 
 
1,106行: 1,109行:
  
  
 2と6と19が複合した場合は 100 0000 0000 0010 0010 = 10進数で262178となります。したがって
+
 2と6と19が複合した場合は 100 <span></span> 0000 <span></span>0000 <span></span> 0010 <span></span> 0010 = 10進数で262178となります。したがって
  
 
  /flags 262178
 
  /flags 262178
1,121行: 1,124行:
  
  
 というようなフォント名はサブセット化されているフォント名の代表です。その中に含まれている文字を文字列で指定することでサブセット化されていて、どの文字が含まれているかを指定するものになっています。各文字名の正式な名称は PDFリファレンスの最後の付録のあたりに記述があります。
+
 というようなフォント名はサブセット化されているフォント名の代表です。その中に含まれている文字を文字列で指定することでサブセット化されていて、どの文字が含まれているかを指定するものになっています。
 +
 
 +
 
  
 
====== ''' /DescendantFonts :/CIDSystemInfo''' ======
 
====== ''' /DescendantFonts :/CIDSystemInfo''' ======
1,256行: 1,261行:
 
2022年8月上旬現在。
 
2022年8月上旬現在。
  
 やってみたんですけど。Wordとかで埋め込まれたフォントストリームをバイナリ―エディタで切り出して、元と同じファイル名の拡張子を付けると、抽出された文字だけのサブセットフォントになっています。バイナリーエディタで編集するときは stream 0x0a…0x0a endstream という具合に改行コード 0a があると思うので、0aも切り取ります。
+
 やってみたんですけど。Wordとかで埋め込まれたフォントストリームをバイナリ―エディタで切り出して、元と同じファイル名の拡張子を付けると、抽出された文字だけのサブセットフォントになっています。バイナリーエディタで編集するときは stream 0x0a…0x0a endstream という具合に改行コード 0a があると思うので、0aも切り取ります。フォントファイルのバイナリーは…の部分そのものということ。
  
  

2022年8月10日 (水) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス