エディタ(手作業)でPDFを作る.

注)PDFリーダーは、Foxit PDF Readerをお使いください

情報収集

  • PDFのマニュアルを入手する

  • 構造の解説

    • ヘッダ
      •  PDFのバージョン
        • 「#PDF-1.3」
          • 「1」はメジャーバージョン
          • 「3」はマイナーバージョン
      • 4つ以上のバイナリ文字を含むコメント行がある場合は、バイナリデータあり
    • ボディ
      • 「1 0 obj」で始まります
        • 「1」はオブジェクト番号
        • 「0」は世代番号
      • 辞書オブジェクト
        • 「<<」は辞書の開始
        • 「Length」はstreamからendstreamまでバイト数(無くても大丈夫。エラー無く表示出来ます)
        • 「>>」は辞書の終了
      • ストリームオブジェクト
        • 「stream」は開始
        • 内容を記載:例
          • 「10 10 m」x:10 y:10にmove to
          • 「S」show  
        • 「endstream」終了
    • クロスリファレンステーブル(無くても大丈夫。エラーなく表示できます)
      • 「xref」で始まります
      • 「05」は、リファレンス数です
      • 「0000000000」は先頭からのバイト数
      • 「00000」は世代番号です
    • トレーラ
      • 「trailer」で始まります
      • 「/Size 5」は最大のオブジェクト番号(4)+1 です
      • 「/Root 1 0 R」開始するオブジェクト番号です
      • 「startxref 999」999は先頭からクロスレファレンスまでのバイト数。
        • 面倒なので、「0」を入れても大丈夫。エラーなく表示できます

上記説明をもとに通常のPDFを省略してみました

通常(間接オブジェクト) 縮小版 (直接記述
テーブル省略も可能)
%PDF-1.3
1 0 obj
<< /Type /Catalog
/Pages 2 0 R
>>
endobj

2 0 obj
<< /Type /Pages
/Kids [ 3 0 R ]
/Count 1
>>
endobj

3 0 obj
<< /Type /Page
/Parent 2 0 R
/MediaBox [ 0 0 612 792 ]
/Contents 4 0 R
>>
endobj

4 0 obj
<< /Length 18 >>
stream
10 10 100 100 re
S
endstream
endobj

xref
0 5
0000000000 65535 f
0000000009 00000 n
0000000062 00000 n
0000000128 00000 n
0000000227 00000 n

trailer
<< /Size 5
/Root 1 0 R
>>
startxref
296
%%EOF
%PDF-1.3
1 0 obj
<< /Type /Catalog
/Pages
<< /Type /Page
/MediaBox [ 0 0 210 300 ]
/Contents
<< >>
stream
10 10 100 100 re
S
endstream
>>
>>
endobj

trailer
<<
/Root 1 0 R
>>
%%EOF

図形の書き方

  • 詳細は、PDFのマニュアルのAPPENDIX A Operator Summaryを参照してください
  • 基本図形
Path PDF 備考
移動 Begin new subpath
Line segment to path
カーブ Curved segment to path (three control points)
文字 Tj T* Show text

サンプル

  • 文字の定義を追加しています
  • Foxit PDF Reader以外でも大丈夫です
%PDF-1.7

1 0 obj
<<
  /Type /Catalog
  /Pages 2 0 R
>>
endobj

2 0 obj
<<
  /Type /Pages
  /Kids [4 0 R]
  /Count 1
>>
endobj
3 0 obj
<<
  /Font <<
    /F0 <<
      /Type /Font
      /BaseFont /Helvetica
      /Encoding/WinAnsiEncoding
      /Subtype /Type1
      /FontDescriptor 6 0 R
    >>
    /F1 <<
      /Type /Font
      /BaseFont /Helvetica-Bold
      /Encoding/WinAnsiEncoding
      /Subtype /Type1
      /FontDescriptor 7 0 R
    >>
    /F3 <<
      /Type /Font
      /BaseFont /GothicBBB-Medium
      /Subtype /Type0
      /Encoding /90ms-RKSJ-H
      /DescendantFonts [9 0 R]
    >>
  >>
>>
endobj

6 0 obj
<<
  /Ascent 718
  /CapHeight 718
  /Descent -207
  /Flags 32/
  FontBBox[-166 -225 1000 931]
  /FontName/Helvetica
  /ItalicAngle 0
  /StemH 88
  /StemV 88
  /Type/FontDescriptor
  /XHeight 523
>>
endobj

7 0 obj
<<
  /Ascent 718
  /CapHeight 718
  /Descent -207
  /Flags 262176
  /FontBBox[-170 -228 1003 962]
  /FontName/Helvetica-Bold
  /ItalicAngle 0
  /StemH 140
  /StemV 140
  /Type/FontDescriptor
  /XHeight 532
>>
endobj

8 0 obj
<<
<<
  /Ascent 718
  /CapHeight 718
  /Descent -207
  /Flags 32/
  FontBBox[-166 -225 1000 931]
  /FontName/SymbolMT
  /ItalicAngle 0
  /StemH 88
  /StemV 88
  /Type/FontDescriptor
  /XHeight 523
>>
>>
endobj

9 0 obj
<<
  /Type /Font
  /Subtype /CIDFontType0
% /BaseFont /KozGoPro6N-Regular
  /BaseFont /GothicBBB-Medium
  /CIDSystemInfo 
  <<
    /Registry (Adobe)
    /Ordering (Japan1)
    /Supplement 6
  >>
  /FontDescriptor 10 0 R
>>
endobj

10 0 obj
<<
  /Type /FontDescriptor
/BaseFont /KozGoPro6N-Regular
  /FontName /GothicBBB-Medium
  /Flags 4
  /FontBBox [-437 -340 1147 1317]
  /ItalicAngle 0
  /Ascent 1317
  /Descent -349
  /CapHeight 742
  /StemV 80
>>
endobj

4 0 obj
<<
  /Type /Page
  /Parent 2 0 R
  /Resources 3 0 R
  /MediaBox [0 -12 520 746]
  /Contents 5 0 R
>>
endobj

5 0 obj
<< >>
stream

0 0 00 K
0 i
1 J 1 j  []0 d -0.4 Ts

endstream
endobj

xref
trailer
<<
  /Size 6
  /Root 1 0 R
>>
startxref
0
%%EOF

  • 手作業で作成したPDFは「pdftk」で変換してから皆さんに配布して下さい  
    • 省略した部分が正しく記載されています   

プライバシーポリシー |ページトップへ

`