Submit Search
Upload
Hello, World! in PDF
•
Download as ODP, PDF
•
0 likes
•
668 views
G
guest2275d4
Follow
How to write "Hello, World!" in PDF.
Read less
Read more
Technology
Report
Share
Report
Share
1 of 34
Download now
Recommended
PDFのコピペが文字化けするのはなぜか?~CID/GIDと原ノ味フォント~
PDFのコピペが文字化けするのはなぜか?~CID/GIDと原ノ味フォント~
Masamichi Hosoda
2019年度チュートリアルBPE
2019年度チュートリアルBPE
広樹 本間
Petionville Townguide poster
Petionville Townguide poster
here, there, anywhere
Presentazione Testing automatizzato
Presentazione Testing automatizzato
angelolu
Generations Workbook
Generations Workbook
jostling
Suomalaisia Kansanlauluja 4 vihko (http://upload.wikimedia.org/wikipedia/en)
Suomalaisia Kansanlauluja 4 vihko (http://upload.wikimedia.org/wikipedia/en)
here, there, anywhere
Raj And Ben Blogz!
Raj And Ben Blogz!
guest42840cf
Hello SlideShare 2
Hello SlideShare 2
Tatsuya Koyama
Recommended
PDFのコピペが文字化けするのはなぜか?~CID/GIDと原ノ味フォント~
PDFのコピペが文字化けするのはなぜか?~CID/GIDと原ノ味フォント~
Masamichi Hosoda
2019年度チュートリアルBPE
2019年度チュートリアルBPE
広樹 本間
Petionville Townguide poster
Petionville Townguide poster
here, there, anywhere
Presentazione Testing automatizzato
Presentazione Testing automatizzato
angelolu
Generations Workbook
Generations Workbook
jostling
Suomalaisia Kansanlauluja 4 vihko (http://upload.wikimedia.org/wikipedia/en)
Suomalaisia Kansanlauluja 4 vihko (http://upload.wikimedia.org/wikipedia/en)
here, there, anywhere
Raj And Ben Blogz!
Raj And Ben Blogz!
guest42840cf
Hello SlideShare 2
Hello SlideShare 2
Tatsuya Koyama
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
mitamex4u
CLR/H 第56回勉強会 LT「Ruby向けmultisetライブラリのご紹介」
CLR/H 第56回勉強会 LT「Ruby向けmultisetライブラリのご紹介」
Hiro H.
最速HTML勉強会
最速HTML勉強会
Chisa Youzaka
JavaScript&Firebug入門
JavaScript&Firebug入門
柴田 篤志
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]
Sho A
高橋rf.html 0.3
高橋rf.html 0.3
hATrayflood
More Related Content
Similar to Hello, World! in PDF
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
mitamex4u
CLR/H 第56回勉強会 LT「Ruby向けmultisetライブラリのご紹介」
CLR/H 第56回勉強会 LT「Ruby向けmultisetライブラリのご紹介」
Hiro H.
最速HTML勉強会
最速HTML勉強会
Chisa Youzaka
JavaScript&Firebug入門
JavaScript&Firebug入門
柴田 篤志
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]
Sho A
高橋rf.html 0.3
高橋rf.html 0.3
hATrayflood
Similar to Hello, World! in PDF
(7)
PHP, Now and Then 2011
PHP, Now and Then 2011
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
CLR/H 第56回勉強会 LT「Ruby向けmultisetライブラリのご紹介」
CLR/H 第56回勉強会 LT「Ruby向けmultisetライブラリのご紹介」
最速HTML勉強会
最速HTML勉強会
JavaScript&Firebug入門
JavaScript&Firebug入門
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]
高橋rf.html 0.3
高橋rf.html 0.3
Hello, World! in PDF
1.
Hello, World! PDF
版 2007-9-8
2.
発端
3.
どう書く ?.org http://ja.doukaku.org/
4.
え?
5.
PDF で書くんじゃないの?
6.
%PDF-1.4 1 0
obj << /Type /Page /Parent 5 0 R /Resources 3 0 R /Contents 2 0 R >> endobj 2 0 obj << /Length 53 >> stream BT /F1 90 Tf 1 0 0 1 10 600 Tm (Hello, World!) Tj ET endstream endobj 3 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 4 0 R >> >> endobj 自分で書いてみた
7.
4 0 obj
<< /Type /Font /Subtype /Type1 /Name /Helv /BaseFont /Helvetica >> endobj 5 0 obj << /Type /Pages /Kids [ 1 0 R ] /Count 1 /MediaBox [ 0 0 595 842 ] >> endobj 6 0 obj << /Type /Catalog /Pages 5 0 R >> endobj trailer << /Root 6 0 R >> %%EOF
8.
実は、日本語で解説してくれている好き者(ホメ言葉)がいた http://hanaden.hp.infoseek.co.jp/ii/pdfxhand.html
9.
以下、まるきり受け売り
10.
PDFの構造 Catalog Pages
Page : コンテンツストリーム : リソース フォント %PDF-1.4 %%EOF trailer
11.
12.
それぞれのアイテムは「オブジェクト」という単位にまとめられている 1 0
obj : endobj (オブジェクト指向のオブジェクトとは直接関係ないと思う) 登場順は好きにしていいらしい 通し番号 世代番号(とりあえず 0 ) 定義
13.
コンテンツストリーム Catalog Pages
Page : コンテンツストリーム : リソース フォント %PDF-1.4 %%EOF trailer
14.
= 描画命令のオブジェクト 2
0 obj << /Length 53 >> stream BT /F1 90 Tf 1 0 0 1 10 600 Tm (Hello, World!) Tj ET endstream endobj 辞書(パラメータ) ここでは stream のバイト数 stream (実際の描画命令)
15.
streamの中身 stream BT
/F1 90 Tf 1 0 0 1 10 600 Tm (Hello, World!) Tj ET endstream PostScript みたいな感じ 開始 フォントを選ぶ 座標を移動 文字を描画 終了
16.
17.
フォント Catalog Pages
Page : コンテンツストリーム : リソース フォント %PDF-1.4 %%EOF trailer
18.
= 1つのフォントを定義 4
0 obj << /Type /Font /Subtype /Type1 /Name /Helv /BaseFont /Helvetica >> endobj オブジェクトの種類(ここでは Font ) Type1 フォント (欧文用のフォント形式) 名前 本当のフォント名
19.
フォントの情報をいろいろ入れられるが、 最小ではこんなところ
20.
リソース Catalog Pages
Page : コンテンツストリーム : リソース フォント %PDF-1.4 %%EOF trailer
21.
= 道具箱 3
0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 4 0 R >> >> endobj 使う描画命令セット Font オブジェクトを指す
22.
Page Catalog Pages
Page : コンテンツストリーム : リソース フォント %PDF-1.4 %%EOF trailer
23.
= つまりページ 1
0 obj << /Type /Page /Parent 5 0 R /Resources 3 0 R /Contents 2 0 R >> endobj オブジェクトの種類 親要素( Pages オブジェクト)を指す リソースを指す コンテンツストリームを指す
24.
Pages Catalog Pages
Page : コンテンツストリーム : リソース フォント %PDF-1.4 %%EOF trailer
25.
= つまりページ一覧 5
0 obj << /Type /Pages /Kids [ 1 0 R ] /Count 1 /MediaBox [ 0 0 595 842 ] >> endobj オブジェクトの種類 子要素( Page オブジェクト)のリスト 子要素の個数、つまりページ数 ページのサイズ(単位:ポイント) この場合は A4 横
26.
Catalog Catalog Pages
Page : コンテンツストリーム : リソース フォント %PDF-1.4 %%EOF trailer
27.
= ルート要素 6
0 obj << /Type /Catalog /Pages 5 0 R >> endobj オブジェクトの種類 Pages オブジェクト
28.
trailer Catalog Pages
Page : コンテンツストリーム : リソース フォント %PDF-1.4 %%EOF trailer
29.
= すべての大元 trailer
<< /Root 6 0 R >> ルート要素( Catalog )を指す
30.
31.
DEMO
32.
33.
34.
any questions? ご静聴ありがとうございました
Download now