[解決済み] 有効なPDFの最小値は?
質問
単純な好奇心で 最小のGIF 有効なPDFファイルの最小値は?
解決方法は?
これは面白い問題ですね。 杓子定規に考えれば、まずはこんなところから始めてみてはいかがでしょうか。
%PDF-1.0
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/MediaBox[0 0 3 3]>>endobj
xref
0 4
0000000000 65535 f
0000000010 00000 n
0000000053 00000 n
0000000102 00000 n
trailer<</Size 4/Root 1 0 R>>
startxref
149
%EOF
は、291バイトのPDFの喜びです。 Acrobatはそれを開きますが、多少文句を言います。 その中に1ページがあり、それは3/72" の正方形で、仕様で許される最小値です。
しかし、Acrobat Xはもう相互参照表を気にすることもないので、それを取り出せばいいのです。
%PDF-1.0
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/MediaBox[0 0 3 3]>>endobj
trailer<</Size 4/Root 1 0 R>>
Acrobatは文句を言いつつも、それを開く。 これで178バイトになった。 トレーラーにある/Sizeは必要ないことが判明。 これで172バイトになりました。
%PDF-1.0
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/MediaBox[0 0 3 3]>>endobj
trailer<</Root 1 0 R>>
辞書の中にある厄介な/Type要素は必要ないことがわかりました。
%PDF-1.0
1 0 obj<</Pages 2 0 R>>endobj 2 0 obj<</Kids[3 0 R]/Count 1>>endobj 3 0 obj<</MediaBox[0 0 3 3]>>endobj
trailer<</Root 1 0 R>>
これで138バイトになりました。
また、仕様書に "shall be an indirect reference" や /Count が必要で、ヘッダーが "must" be %PDF-1.0 である場合、彼らは緩い提案を行っていることがわかりました。 これは、私が作ることができ、Acrobat Xで開くことができる最小のものです。
%PDF-1.
trailer<</Root<</Pages<</Kids[<</MediaBox[0 0 3 3]>>]>>>>>>
70バイトです。
さて、私のエディターは Windows の改行規則を使っていますが、Acrobat は Windows、Mac、Unix の規則を受け入れるので、Hex エディターを使って、 \n を \r に置き換え、最後の改行を完全に削除し、67 バイトにしました。
25 50 44 46 2D 31 2E 0D 74 72 61 69 6C 65 72 3C
3C 2F 52 6F 6F 74 3C 3C 2F 50 61 67 65 73 3C 3C
2F 4B 69 64 73 5B 3C 3C 2F 4D 65 64 69 61 42 6F
78 5B 30 20 30 20 33 20 33 5D 3E 3E 5D 3E 3E 3E
3E 3E 3E
最後の末尾の辞書(>>)を外してみたが、Acrobatにはそれがない。 Google Chromeに内蔵されているPDF読み上げソフト(FoxIt)でも開けない。
PostScriptとして(HA!私が何をしたかわかりますか?)、もしあなたがAcrobat "repairing"に同意すれば、ファイルは3550バイトに増えますが、そのほとんどは任意のメタデータで、明らかに仕様違反のものが多数残されています。
関連
-
[解決済み] OCSP レスポンスを一意にする
-
[解決済み] Latexに画像を含めるとエラーになる【非公開
-
[解決済み] ImageMagickを使用してPDFをPNGに変換する
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] PDFファイルの適切なMIMEメディアタイプ
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み] HTMLの "role "属性は何のためにあるのですか?
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み】JavaScriptでPDFファイルを生成する
-
[解決済み] 有効なPDFの最小値は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン