pdfimages -all
.pdfファイル(各ページはテキストです)で使用すると、pdfの各ページに対して3つの画像が得られます。
Foo-001-000.jp2
Foo-001-002.png
Foo-001-002.jb2e
最初のファイルはほとんど空白ですが、不思議な背景と時々テキストが含まれています。 2番目のファイルは白黒で、一種のマスクのように見えます。おそらく、3番目のファイルのテキストがどこにあるのかを識別することができます。 3番目のファイルは、Ubuntuの画像ビューアやGIMPで見ることができません。
を使用すると、-png
同じ3つの画像が得られますが、すべて.pngです。 PDFテキストのほとんど(ほぼすべて)は3番目の画像にあります。
pdfimages -list
次のようになります。
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
1 0 image 829 1254 rgb 3 8 jpx yes 3659 0 150 150 76.2K 2.5%
1 1 image 829 1254 rgb 3 8 image yes 3663 0 150 150 5250B 0.2%
1 2 mask 1658 2508 - 1 1 image yes 3663 0 300 300 5250B 1.0%
2 3 image 934 1254 rgb 3 8 jpx yes 11 0 150 150 85.6K 2.5%
2 4 image 934 1254 rgb 3 8 image yes 15 0 150 150 14.1K 0.4%
2 5 mask 1868 2508 - 1 1 image yes 15 0 300 300 14.1K 2.5%
3 6 image 858 1243 rgb 3 8 jpx yes 47 0 150 150 78.0K 2.5%
3 7 image 858 1243 rgb 3 8 image yes 51 0 150 150 7681B 0.2%
誰かが私がここで得たものとこれら3つの画像を組み合わせて、各ページの単一の画像を取得する方法を理解するのに役立ちますか?または、ページごとに1つの画像のみを抽出するのと同じです。私にとって最も重要な問題は、これらの画像で利用可能な情報をできるだけ維持することです。品質低下を防ぎたいです。
答え1
単一の画像をページとして受け取っていると思いましたが、実際には合成物であるという事実に驚きました。雑誌はいくつかの画像がない単純な本よりもグラフィック的に複雑であるため、これは雑誌を保管するために広く使用されています。品質を維持し、最終的に非常に小さなPDFファイルを提供しますが、レンダリングが遅すぎるため、便利ではありません。
今解決策があります。実際にPDFから何も抽出したくありません。 PDFリーダーと同じようにレンダリングしたいです。 Ghostscriptを使用することをお勧めします。次のように動作します。
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r600 -dGraphicsAlphaBits=4 -sOutputFile=./img/img-%03d.png "$pdffilename"
必要に応じて調整してください。