PDFにOCRを追加しようとしていますが、 pdfsandwich を使用しています。問題は、pdfsandwichがOCRを実行するときに画像を処理し、ドキュメントの外観を変更することです。
PDF画像が完全に変更されないようにする方法はありますか?これがpdfsandwichで不可能な場合は、別のアプリケーションでこれを実行できます。
Pdfsandwichを介してpdfを実行した後、品質の低下を簡単に確認できます。
Pdfsandwichのドキュメントを確認しましたが、画像を変更しないでおくことについて何も見つかりませんでした。
Pdfsandwichの作成者であるTobialElzeに質問をしました。これが彼らの反応です:
私はあなたが何を意味するのかを完全に知っており、これが便利な機能になることに同意します。 pdfsandwichがTesseractを呼び出して最終的なpdfを作成し、内部でスコープ外の処理を実行するため、現在、元の画像を完全に保持することはできません。とpdfsandwichの制御。
独自の例でわかるように、デフォルトでは、pdfsandwichは入力画像を白黒に変換します。オプション-rgbでカラー(カラー画像の場合)を使用するように強制するか、オプション-grayでグレースケールを使用することで、元の画像に近づけることができます。例で後者を試して、改善されるかどうかを確認することをお勧めします。
それとは別に、OCRの前のpdfsandwichの「改善」機能が画像を改善せず、代わりに悪化させることがわかった場合は、オプション-nopreprocを使用してすべての前処理をオフに切り替えることができます。
私はそれがいくらか役立つことを願っていますか?
私のPDFはすでにグレースケールであるため、フラグ-gray
を追加するだけで元の品質が維持されるようです。 -rgb
は、カラー画像の同等のフラグです。
Pdfsandwichが小さなPDF画像をひどく再圧縮し、PDFファイルサイズを膨らませたので、私は同じ欲求を持っていました。これは、1ページでそれを処理する複雑な方法ですPDF OCRingの利益のためにすでにクリーンアップされています:
pdfimages -list original.pdf
pdfsandwich -nopreproc -maxpixels 123456 original.pdf
これで、置き換えたい画像を含むOCRed PDFができました。この部分は少し注意が必要です。
pdfimages -list original.pdf
pdfimages -list original_ocr.pdf
123 0 obj
元のPDFで。 その下の行次のendobj
行まで後続のすべての行と一緒にコピーします。456 0 obj
OCRedPDFで。消去その下の行次のendobj
行までの後続のすべての行と一緒に。元のPDFからコピーしたものを貼り付けて、削除した行を置き換えます。