-1

ITEXTPDF を使用して PDF を圧縮していますが、問題は、サイトにアップロードする前に圧縮されたファイルを圧縮したいということです...ファイルが圧縮せずにアップロードされた場合、そのようなものを残したいと思います..

そのためには、PDF が圧縮されているかどうかを特定する必要があります..PDF が圧縮されているか、ITEXTPDF やその他のツールを使用していないかを特定する方法はあるのでしょうか!!!..

私はそれをグーグルで検索しようとしましたが、適切な答えが見つかりませんでした..

何かアイデアがあれば教えてください...

ありがとう

4

2 に答える 2

1

PDF で取得できる圧縮には、いくつかの種類があります。オブジェクトのデータは圧縮でき、オブジェクトはオブジェクト ストリームに圧縮できます。

于 2013-12-06T07:42:51.867 に答える
0

マークの回答に賛成票を投じたのは、彼が正しいからです。より具体的でない場合、回答は得られません。いくつかの追加情報を使用して、独自の回答を追加します。

PDF 1.0 では、PDF ファイルは、PDF 構文用の ASCII 文字と、画像などのオブジェクト用のバイナリ コードの組み合わせで構成されていました。ページ ストリームには、目に見える PDF 演算子とオペランドが含まれます。たとえば、次のようになります。

56.7 748.5 m
136.2 748.5 l
S

このコードは、座標 (演算子でカーソルが移動する場所であるため) と座標(線を追加する演算子を使用してパスが作成されたためS) の間に線を引く ( ) 必要があることを示しています。(x = 56.7; y = 748.5)m(x = 136.2; y = 748.5)l

PDF 1.2 から、そのようなコンテンツ ストリーム (ページ コンテンツ ストリーム、フォーム XObjects) にフィルターを使用できるようになりました。ほとんどの場合、ストリーム ディクショナリ/Filterに値を持つエントリが見つかります。/FlateDecodeコンテンツが圧縮されていない「最新の」PDF はほとんどありません。

PDF 1.5 までは、PDF ドキュメント内のすべての間接オブジェクトと相互参照ストリームは、ASCII で PDF ファイルに格納されていました。PDF 1.5 から、特定の種類のオブジェクトをオブジェクト ストリームに格納できるようになりました。相互参照テーブルは、ストリームに圧縮することもできます。iTextには、これが当てはまるかどうかを確認PdfReaderする方法があります。isNewXrefType()多分それはあなたが探しているものです。このタイプの PDF を読み取ることができないソフトウェアで読み取る必要がある PDF があるかもしれませんが、あなたは私たちに教えてくれません。

たぶん、私たちは質問を完全に誤解しています。実際の PDF を受け取っているのか、PDF を含む zip ファイルを受け取っているのか知りたいと思うかもしれません。または、PDF 内で使用されているさまざまなフィルターを実際にデータマイニングしたい場合もあります。要するに、あなたの質問はあまり明確ではありません。この回答で、明確にする必要がある理由が説明されることを願っています。

于 2013-12-06T08:11:09.610 に答える