ocr bashスクリプトを使用してスキャンする方法

ocr bashスクリプトを使用してスキャンする方法

スキャンプロセスを簡素化するために、OCRを1ステップでスキャンして適用できるスクリプトを作成します。しかし、私のbash技術は非常に悪いので、助けてくれて本当にありがとう。私の試みは次のとおりです。

#!/bin/bash

mydate="$(date +"%Y%m%d-%H%M%S")"
image="$(scanimage --device "brother4:net1;dev0" --progress --verbose --resolution=600 -l 0 -t 0 -x 210 -y 297 --format=pdf)"
ocrmypdf --deskew "$image" "$mydate".pdf

このコマンドは、日付別のファイル名を作成しなくてもうまく機能します。

scanimage --device "brother4:net1;dev0" --progress --verbose --resolution=600 -l 0 -t 0 -x 210 -y 297 --format=pdf > scan.pdf && ocrmypdf --deskew scan.pdf scan.pdf

OCR処理には時間がかかりますので、スキャン時に時間(最大秒)を含むファイル名を保存してから、最終ファイルに適用する必要があります。あるいはocrmypdf、名前を指定せずにファイルをパイプし、日付と時刻の情報を含むファイルを保存することもできます。

ベストアンサー1

一時ディレクトリを作成し、ここにファイルを保存できます。mktemp一意のファイル/ディレクトリ名を提供するように設計されており、この目的に適しています。

tmpdir=$(mktemp -d OcrTmpDirXXXXXXXXX)

scanimage args >"$tmpdir/in.pdf"
ocrmypdf args "$tmpdir/in.pdf" "$tmpdir/out.pdf"

printf 'See "%s" for result\n' "$tmpdir"

おすすめ記事