Answers:
我已经在Cuneiform OCR系统的BSD许可的Linux端口上取得了成功。
似乎没有可用的二进制包,因此您需要从源代码构建它。确保安装了ImageMagick C ++库,以实质上支持任何输入图像格式(否则它将仅接受BMP)。
除了简短的README文件外,它似乎基本上没有记录在案,但我发现OCR结果相当不错。关于它的好处是,它可以以hOCR格式输出OCR文本的位置信息,从而可以将文本放回PDF文件隐藏层中的正确位置。这样,您可以创建“可搜索”的PDF,从中可以复制文本。
我已经使用hocr2pdf从原始的仅图像PDF和OCR结果中重新创建PDF。遗憾的是,该程序似乎不支持创建多页PDF,因此您可能必须创建一个脚本来处理它们:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a new pdf with the
# extracted text in hidden layer. Requires cuneiform, hocr2pdf, gs.
# Usage: ./dwim.sh input.pdf output.pdf
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiffg4 -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
cuneiform -f hocr -o "$base.html" "$page"
hocr2pdf -i "$page" -o "$base.pdf" < "$base.html"
done
# combine the pages into one PDF
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$output" "$tmpdir"/page-*.pdf
rm -rf -- "$tmpdir"
请注意,以上脚本非常基本。例如,它不保留任何PDF元数据。
aspell check --mode=html "$base.html"
在运行楔形文字之后立即在脚本中添加类似内容来实现。
查看pdftotext是否适合您。如果不在您的计算机上,则必须安装poppler-utils软件包
sudo apt-get install poppler-utils
您可能还会找到使用的pdf工具包。
PDF软件的完整列表在这里维基百科。
编辑:由于您确实需要 OCR功能,因此我认为您必须尝试其他方法。(即我找不到执行OCR的linux pdf2text转换器)。
将pdf转换为图像
gs:以下命令应将多页pdf转换为单独的tiff文件。
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE =字母-sOutputFile = filename_%04d.tif -dNOPAUSE -dBATCH-文件名
ImageMagik实用程序:在SuperUser网站上,还有其他有关使用ImageMagik的问题,这些问题可能会帮助您进行转换。
转换foo.pdf foo.png
使用OCR将图像转换为文本
摘自Wikipedia的OCR软件列表
Google文档现在将使用OCR将您上传的图片/ pdf文档转换为文本。我已经取得了成功。
他们正在使用用于庞大的Google图书项目的OCR系统。
但是,必须注意,仅2 MB大小的PDF将被接受进行处理。
更新
1.要试用,请从网络浏览器上传<2MB pdf到google docs。
2.右键单击上载的文档,然后单击“使用Google文档打开”。
... Google Docs将转换为文本并输出到具有相同名称但Google Docs在同一文件夹中键入的新文件。
Geza Kovacs制作了一个Ubuntu软件包,该软件包基本上是hocr2pdf
Jukka所建议的脚本,但是使安装过程变得更快。
从Geza的Ubuntu 论坛帖子中获得有关该软件包的详细信息...
添加存储库并在Ubuntu中安装
sudo add-apt-repository ppa:gezakovacs/pdfocr
sudo apt-get update
sudo apt-get install pdfocr
在文件上运行ocr
pdfocr -i input.pdf -o output.pdf
GitHub代码存储库 https://github.com/gkovacs/pdfocr/
最好和最简单的使用方法pypdfocr
不会改变pdf
pypdfocr your_document.pdf
最后,您可以your_document_ocr.pdf
通过可搜索的文本找到想要的另一种方式。该应用程序不会改变图像的质量。通过添加覆盖文本,稍微增加文件的大小。
pypdfocr
自2016年以来不再受支持,我注意到由于未得到维护而出现了一些问题。ocrmypdf
(module)做辅助工作,可以这样使用:
ocrmypdf in.pdf out.pdf
安装:
pip install ocrmypdf
要么
apt install ocrmypdf
PDFBeads对我来说效果很好。这个线程“ 将扫描的图像转换为单个PDF文件 ”使我启动并运行。对于黑白书籍扫描,您需要:
在新文件夹中,运行
pdfbeads * > ../Output.pdf
这会将整理后的OCR格式的PDF放在父目录中。
使用tesseract的另一个脚本:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a txt with the
# extracted text in hidden layer. Requires tesseract, gs.
# Usage: ./pdf2ocr.sh input.pdf output.txt
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiff24nc -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
tesseract "$base.tiff" $base
done
# combine the pages into one txt
cat "$tmpdir"/page-*.txt > $output
rm -rf -- "$tmpdir"
Asprise OCR库可在大多数Linux版本上使用。它可以将PDF输入和输出作为搜索PDF。
这是一个商业包装。在此处下载适用于Linux的Asprise OCR SDK的免费副本,并通过以下方式运行它:
aocr.sh input.pdf pdf
注意:独立的“ pdf”指定输出格式。
免责声明:我是生产上述产品的公司的雇员。
尝试使用Apache PDFBox从PDF文件提取文本内容。如果图像嵌入到PDF文件中,请使用适用于Linux的ABBYY FineReader Engine CLI提取文本。