PDFの仕様
PDFの仕様はISO 32000-1:2008として国際規格化されている
from 詳細PDF入門 ー 実装して学ぼう!PDFファイルの構造とその書き方読み方
日本語の解説サイト
詳細PDF入門 ー 実装して学ぼう!PDFファイルの構造とその書き方読み方
手書きPDF入門
PDFってこうなってる? 実践でPDFの内部構造を学ぼう Part 1:PDFを理解するための第一歩 - 株式会社インターワーク
PDFってこうなってる? 実践でPDFの内部構造を学ぼう Part 2:PDFファイルの内部構造を理解する - 株式会社インターワーク
PDFってこうなってる? 実践でPDFの内部構造を学ぼう Part3:自作のPDFを作成する - 株式会社インターワーク
PDFってこうなってる? 実践でPDFの内部構造を学ぼう Part4:白紙のPDFページを自作する - 株式会社インターワーク
PDFってこうなってる? 実践でPDFの内部構造を学ぼう Part5:Hello WorldのPDFを作ろう - 株式会社インターワーク
PDFってこうなってる? 実践でPDFの内部構造を学ぼう Part 6:パスで図形を描こう - 株式会社インターワーク
PDFってこうなってる? 実践でPDFの内部構造を学ぼう Part 7:色を操るグラフィックスステート - 株式会社インターワーク
プログラマーから見たPDFファイル - アンテナハウス PDF資料室
PDFを覗いてみよう(入門編) - ロシアンブルー飼育日記
PDF 構文 -ファイル構造(各部)-
PDFの仕様書を読む
カテゴリリスト
全33回
PDFを覗いてみよう(ツール編) - ロシアンブルー飼育日記
ファイルの先頭からみた全体像
$ %PDF-1.2
%で1行コメントを書く
ファイル先頭のコメントは特殊なコメントで、このファイルがPDFであることと、PDFの仕様のversionとを示す
PDF Object list
以下のように記述されるものをObjectと呼ぶ
code:object.pdf
1 0 obj
<<
/Type /Page
/Parent 7 0 R
/Resources 3 0 R
/Contents 2 0 R
>
endobj
これが一つずつ並んでいる
xref
相互参照テーブル
trailer
PDFファイルの最上位のobject
このobjectから他のobjectを参照することでPDFの文書構造が定義される
startxref
相互参照テーブルのoffsetを記す
$ %%END
ファイル末尾を表す特殊なコメント
文法
%でコメント
()で文字列、<>で16進表記の文字列
obj << >> endobjでobject定義
/Type
streaming
Linearized PDFなら可能
リニアライズドPDF
Annex F (normative) Linearized PDF
code reading
JS
どれもbrowserでも動く
すべてclass-based library
pdf.js
これを読むのはやめたほうがいい
型が中途半端で、変数の型を特定するのが困難
pdf-lib
比較的読みやすそう?
459.1kB (minified)
fully typescripted
jspdf
https://github.com/parallax/jsPDF
339.1kB (minified)
html2canvasなどは除外
no typing
pdfkit
https://github.com/foliojs/pdfkit
637.2kB (minified)
fontkitなど、他のlibraryがコードの大部分を占めている
no typing
react-pdfはこれをベースにしている
pdfmake
https://github.com/bpampuch/pdfmake
font fileをbase64でsource fileに埋め込んでいる
https://zenn.dev/metal_stone/articles/37011a56e1fac1
1.3MB (minified)
フォントを埋め込んでいるからか、これだけ桁がおかしい
JSDocで多少型がついているが、@param {Object}レベルなのでほとんど役に立たない
#PDFの規格
#2024-10-25 14:18:25
#2024-10-24
#2024-09-04 22:15:47
#2024-09-03 20:49:05
#2024-08-24 15:44:00
#2020-11-08 17:44:29