私は持っていますスキャンしたPDFファイル、品質の低いORテキストが含まれています。
OCRテキストのないPDFファイルが必要です。
OCR処理されたテキストを含むスキャンしたPDFをOCR処理されたテキストを含まないスキャンされたPDFに変換するには?
各ページの幅と高さをピクセル単位で変更せずに、各ページのインチあたりのピクセル数を変更せずに、OCRの前にスキャンした元のPDFファイルにできるだけ近づける方法があるかどうか疑問に思います。
どのようなラスター化が再び役に立ちますか?ラスター化すると画質が再び低下しますか?
多くの試み:
- 私はEvinceで印刷ファイルを使用していますが、
cups-pdf
OCRされたテキストは削除しません。 次のコマンドを使用しても
gs
OCRされたテキストは削除されません(まだ正しく使用する方法が見つからないようですgs
)。gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \ -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf toc.pdf
ベストアンサー1
これを行う必要がある場合は、次のようにOCRテキストを削除します。
まず、PDFのOCRテキストがOCRテキストではないことに注意してください。フロアしかし、特別なテキストレンダリングモード。下のスクリーンショット公式PDF仕様から利用可能なすべてのテキストレンダリングモードを一覧表示します。
詳細な背景については、StackOverflow で次の回答をご覧ください。
今私が想像するプログラムは次のとおりです。
0. オリジナルPDFファイルのバックアップ
ヌープは言った…
1.qpdf
ほとんどのPDFオブジェクトを解凍するために使用されます。
qpdf
sed
ほとんどのPDFをテキストエディタ(または以下を介して)で操作しやすい形式に変換する素晴らしいコマンドラインツールです。
qpdf \
--qdf \
--object-streams=disable \
input.pdf \
editable.pdf
2. PDFコードに含まれる場所を検索してください3 Tr
「見えない」場所editable.pdf
(別名。パディングも愛撫でもない) 初期定義で表示されるテキスト
3 Tr
今読めるように変更してください。
1 Tr
これにより、以前に隠されたテキストが表示されます。文字の外観は、スキャンした元のページ画像の上に太い輪郭で表示されます。
とても醜いようです。
編集したPDFを保存します。
3. ストローク演算子Tj
とテキストを「no-ops」に変更します。TJ
テキスト文字列をレンダリングする準備ができたときはいつでも、これを実行する実際の演算子の名前はまたはTj
ですTJ
。
それらすべてに注意を払う。tJ
とに置き換えてくださいtj
。これは「no-op」に変更されます。 PDFソースコードではまったく意味がなく、PDFビューアやプロセッサもこれを「理解」することはできません。 (PDFソースコードの内容を置き換えるときは、バイト数を変更しないように注意してください。これが「破損」する可能性があります。)
PDFファイルを保存します。
4. 今PDFファイルがどのように見えるかを確認してください
これでPDFは再び「きれいに」見えます。名前が変更されたテキスト演算子は、もはやPDFビューアやPDFソルバーには意味がありません。
5. Ghostscriptを使用して最終PDFを作成する
このコマンドを使用すると、目的の結果を得ることができます。
gs \
-o final.pdf \
-sDEVICE=pdfwrite \
-dPDFSETTINGS=/prepress \
editable.pdf
最後のステップがeditable.pdf
入力として使用されます。出力final.pdf
はテキストのすべての痕跡を削除します。スチール入力持つ演算子の名前が変更されたため、「使用できない」形式ですが、テキストです。 Ghostscript は名前が変更された演算子を「理解する」ことができないため、デフォルトではその演算子をスキップします。