ฉันจะแยกข้อความจาก PDF ที่ไม่ได้สร้างด้วยดัชนีได้อย่างไร มันคือข้อความทั้งหมด แต่ฉันไม่สามารถค้นหาหรือเลือกอะไรก็ได้ ฉันใช้ Kubuntu อยู่และ Okular ไม่มีคุณสมบัตินี้
ฉันจะแยกข้อความจาก PDF ที่ไม่ได้สร้างด้วยดัชนีได้อย่างไร มันคือข้อความทั้งหมด แต่ฉันไม่สามารถค้นหาหรือเลือกอะไรก็ได้ ฉันใช้ Kubuntu อยู่และ Okular ไม่มีคุณสมบัตินี้
คำตอบ:
ฉันประสบความสำเร็จกับพอร์ต Linux ที่ได้รับลิขสิทธิ์ BSD ของระบบCuneiform OCR
ดูเหมือนจะไม่มีแพ็คเกจไบนารีดังนั้นคุณต้องสร้างจากแหล่งที่มา ต้องแน่ใจว่าติดตั้งไลบรารี ImageMagick C ++ เพื่อรองรับรูปแบบภาพอินพุตใด ๆ (ไม่เช่นนั้นจะยอมรับเฉพาะ BMP)
ในขณะที่ดูเหมือนว่าจะไม่มีเอกสารหลักนอกเหนือจากไฟล์ README สั้น ๆ ฉันพบว่าผลลัพธ์ OCR ค่อนข้างดี สิ่งที่ดีเกี่ยวกับมันคือมันสามารถส่งออกข้อมูลตำแหน่งสำหรับข้อความ OCR ในรูปแบบhOCRเพื่อให้สามารถใส่ข้อความกลับเข้าไปในตำแหน่งที่ถูกต้องในเลเยอร์ที่ซ่อนอยู่ของไฟล์ PDF วิธีนี้คุณสามารถสร้าง PDF "ค้นหา" ซึ่งคุณสามารถคัดลอกข้อความ
ฉันใช้hocr2pdfเพื่อสร้าง PDF จากผลลัพธ์ PDF และ OCR แบบรูปภาพต้นฉบับเท่านั้น น่าเศร้าที่โปรแกรมไม่สนับสนุนการสร้าง 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 ฉันคิดว่าคุณจะต้องลองใช้วิธีอื่น (เช่นฉันไม่พบตัวแปลง pdf2text ของ linux ที่ทำ OCR)
แปลงไฟล์ PDF เป็นรูปภาพ
gs: คำสั่งด้านล่างควรแปลงไฟล์ PDF หลายไฟล์เป็นไฟล์ TIFF แต่ละไฟล์
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = ตัวอักษร -sOutputFile = filename_% 04d.tif -dNOPAUSE -dBATCH - ชื่อไฟล์
ยูทิลิตี้ ImageMagik : มีคำถามอื่น ๆ เกี่ยวกับเว็บไซต์ SuperUser เกี่ยวกับการใช้ ImageMagik ที่คุณอาจใช้เพื่อช่วยในการแปลง
แปลง foo.pdf foo.png
แปลงภาพเป็นข้อความด้วย OCR
นำมาจากรายการ OCR ของซอฟต์แวร์ Wikipedia
Google Docsจะตอนนี้ใช้ OCR เพื่อแปลงเอกสารภาพ / pdf ที่คุณอัปโหลดไปยังข้อความ ฉันประสบความสำเร็จเป็นอย่างดี
พวกเขากำลังใช้ระบบ OCR ที่ใช้สำหรับโครงการGoogle หนังสือขนาดยักษ์
อย่างไรก็ตามจะต้องมีการบันทึกไว้ว่าจะยอมรับเฉพาะ PDF ที่มีขนาด 2 MB สำหรับการประมวลผล
อัปเดต
1. ในการทดลองใช้ให้อัปโหลดไฟล์ <2MB ไปยัง Google เอกสารจากเว็บเบราว์เซอร์
2. คลิกขวาที่เอกสารที่อัปโหลดแล้วคลิก "เปิดด้วย Google เอกสาร"
... Google เอกสารจะแปลงเป็นข้อความและส่งออกเป็นไฟล์ใหม่ที่มีชื่อเหมือนกัน แต่พิมพ์ Google เอกสารในโฟลเดอร์เดียวกัน
Geza Kovacs ได้จัดทำแพคเกจ Ubuntu ซึ่งโดยพื้นฐานแล้วเป็นสคริปต์ที่ใช้hocr2pdf
ตามที่ Jukka แนะนำ แต่ทำให้การติดตั้งเร็วขึ้นเล็กน้อย
จากโพสต์ฟอรัม Ubuntu ของ Geza พร้อมรายละเอียดเกี่ยวกับแพ็คเกจ ...
การเพิ่มที่เก็บและติดตั้งใน 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
ไม่ได้รับการสนับสนุนอีกต่อไปตั้งแต่ปี 2559 และฉันสังเกตเห็นปัญหาบางอย่างเนื่องจากไม่มีการพูดถึง ocrmypdf
( โมดูล ) ทำงานที่คุ้นเคยและสามารถใช้ได้ดังนี้:
ocrmypdf in.pdf out.pdf
ติดตั้ง:
pip install ocrmypdf
หรือ
apt install ocrmypdf
PDFBeadsทำงานได้ดีสำหรับฉัน หัวข้อนี้“ แปลงรูปภาพที่สแกนเป็นไฟล์ PDF ไฟล์เดียว ” ช่วยให้ฉันเริ่มทำงานได้ สำหรับการสแกนหนังสือแบบ b & w คุณต้อง:
ในโฟลเดอร์ใหม่ให้เรียกใช้
pdfbeads * > ../Output.pdf
สิ่งนี้จะใส่ OCR'd 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 Libraryทำงานบน Linux เกือบทุกรุ่น มันสามารถใช้อินพุตและเอาต์พุต PDF เป็นค้นหา PDF
มันเป็นแพ็คเกจเชิงพาณิชย์ ดาวน์โหลดAsprise OCR SDK สำหรับ Linux ฟรีที่นี่และรันด้วยวิธีนี้:
aocr.sh input.pdf pdf
หมายเหตุ: รูปแบบสแตนด์อโลน 'pdf' ระบุรูปแบบผลลัพธ์
คำเตือน: ฉันเป็นพนักงานของ บริษัท ที่ผลิตผลิตภัณฑ์ดังกล่าว
ลองApache PDFBoxเพื่อแยกเนื้อหาข้อความจากไฟล์ PDF ในกรณีของภาพที่ฝังอยู่ในไฟล์ PDF ให้ใช้ABBYY FineReader Engine CLI สำหรับ Linuxเพื่อแยกข้อความ