リンクをクリップボードにコピー
コピー完了
件名にある通り、スクリプト(Javascript)でPDFを読み込み、document情報を取得したと考えております。
以下PDFのバイナリデータの例です。
%PDF-1.6
1 0 obj
<< /Type /Pages /Count 1 /Kids [2 0 R] >>
endobj
2 0 obj
<< /Type /Page /MediaBox [0 0 612 792] /Resources 3 0 R /Parent 1 0 R /Contents [4 0 R] >>
endobj
3 0 obj
<< /Font << /F0 << /Type /Font /BaseFont /Times-Italic /Subtype /Type1 >> >> >>
endobj
4 0 obj
<< >>
stream 1. 0. 0. 1. 50. 700. cm
BT
/F0 36. Tf (Hello, World!) Tj
ET
endstream
endobj
5 0 obj << /Type /Catalog /Pages 1 0 R >>
endobj
xref
0 6
trailer
<< /Size 6 /Root 5 0 R >>
startxref
0
%%EOF
上記のPDFバイナリデータから例えば、objの数やフォントのタイプなどjavascriptで取得できる方法があるのなら教えていただけますでしょうか。
リンクをクリップボードにコピー
コピー完了
PDFってのはテキストで記述されているものです。基本的に単純に検索して数えれば含まれるエレメントの数は計算できますが、圧縮ストリームが含まれていると解析難易度が跳ね上がりますとりあえずはAdobeがリリースしているPDFリファレンスを読んで見ることです。データ構造と何を検索すれば良いかは少し読めば目星はつくかと思います。
また、過去にわたしが書いた記事も理解の助けになるでしょう。
https://ten-artai.com/2021/08/3535/
JavaScriptでの処理を難しくしているのはPDFのデータがAscii85とFlate圧縮の複合ストリームとなっているケースが多いことなんですが、これもExtendScriptで書けなくもないです。
リンクをクリップボードにコピー
コピー完了
どの部分にどんな内容が書いてあるかは、PDFの仕様書に書いてありますので、それを入手して読まれるのが最善の方法だと思います。
JavaScriptと書かれていますが、これはExtendScriptのことですよね。ExtendScriptでバイナリファイルを扱うことはできるので、検索対象がわかれば取得することはできます。
(かぶっちゃったのでTen Aさんの方だけ見てください^^;
リンクをクリップボードにコピー
コピー完了
有識者の方々にお聞きしたいのですが、Ascii85とFlate圧縮の複合ストリームのデータのPDFとはどういったPDFなのでしょうか。
また、extendscriptでバイナリファイルを扱う方法も教えていただけないでしょうか。
リンクをクリップボードにコピー
コピー完了
有識者の方々にお聞きしたいのですが、Ascii85とFlate圧縮の複合ストリームのデータのPDFとはどういったPDFなのでしょうか。
また、extendscriptでバイナリファイルを扱う方法も教えていただけないでしょうか。
何か関数のようなものがあるのでしょうか。
リンクをクリップボードにコピー
コピー完了
リンクをクリップボードにコピー
コピー完了
質問内容としては別ですが目的は一貫しているため、スレッドを統合させていただきました。
もとより有識者が回答してくださっているので、このまま進めてください。