इस पर एक साल पहले चर्चा की गई है:
कई पीडीएफ फाइलों के लिए बैच ओसीआर (पहले से ही ओसीआर नहीं)?
क्या OCR PDF को बैचने का कोई तरीका है जो पहले से OCRed नहीं है? मुझे लगता है, दो मुद्दों से निपटने वाली चीजों की वर्तमान स्थिति:
बैच ओसीआर पीडीएफ
खिड़कियाँ
एक्रोबैट - यह सबसे स्ट्रेटफ़ोर्ड ocr इंजन है जो OCR को बैच देगा। केवल समस्या 1 लगती है) यह उन फ़ाइलों को छोड़ देगा जो पहले से ही ओसीआर 2 हो चुके हैं) इसे (कुछ पुराने) पीडीएफ का एक गुच्छा फेंकने की कोशिश करें और इसे क्रैश देखें। यह थोड़ा बुग्याल है। यह आपको प्रत्येक त्रुटि पर चेतावनी देगा जो इसे चलाता है (हालांकि आप सॉफ़्टवेयर को सूचित नहीं करने के लिए कह सकते हैं। लेकिन फिर से, यह कुछ प्रकार के पीडीएफ पर बुरी तरह से मर जाता है, इसलिए आपका लाभ भिन्न हो सकता है।
ABBYY FineReader (बैच / स्कैन्सैप), Omnipage - ये कुछ सबसे खराब प्रोग्राम किए गए सॉफ़्टवेयर हैं जो मनुष्य को ज्ञात हैं। यदि आप यह पता लगा सकते हैं कि PDF का पूरी तरह से स्वचालित (कोई प्रॉम्प्टिंग) बैच OCR एक ही नाम से कैसे सेव किया जा सकता है तो कृपया यहाँ पोस्ट करें। ऐसा लगता है कि एकमात्र समाधान मैं कहीं असफल हो सकता था - नाम बदलना, पूरी तरह से स्वचालित नहीं होना, आदि। सबसे अच्छा, ऐसा करने का एक तरीका है, लेकिन प्रलेखन और प्रोग्रामिंग इतनी भयानक है कि आप कभी भी पता नहीं लगा पाएंगे।
ABBYY FineReader Engine , ABBYY मान्यता सर्वर - ये वास्तव में अधिक उद्यम समाधान हैं, आप शायद एक फ़ोल्डर पर चलाने के लिए एक्रोबेट प्राप्त करने से बेहतर होंगे और कोशिश कर सकते हैं और पीडीएफ़ का उपयोग कर सकते हैं जो आपको त्रुटियां देते हैं / कोशिश करने की परेशानी से गुजरने वाले प्रोग्राम को क्रैश करते हैं। मूल्यांकन सॉफ्टवेयर स्थापित करने के लिए (आप एक सरल अंत उपयोगकर्ता हैं)। छोटे उपयोगकर्ता के लिए लागत प्रतिस्पर्धी नहीं लगता है।
** ऑटोबान डीएक्स वर्कस्टेशन ** इस उत्पाद की लागत इतनी निषेधात्मक है, आप शायद एक्रोबेट की 6 प्रतियां खरीद सकते हैं। वास्तव में एंड-यूज़र समाधान नहीं है। यदि आप एक उद्यम सेटअप हैं, तो यह आपके लिए इसके लायक हो सकता है।
लिनक्स
- वॉचओसीआर - अब विकसित नहीं हुआ है, और मूल रूप से आधुनिक उबंटू डिस्ट्रो पर चलना असंभव है
- pdfsandwich - अब विकसित नहीं हुआ है, मूल रूप से आधुनिक उबंटू डिस्ट्रो पर चलना असंभव है
- ** ABBY LINUX OCR ** - यह स्क्रिप्ट योग्य होना चाहिए, और कुछ अच्छे परिणाम प्रतीत होते हैं:
http://www.splitbrain.org/blog/2010-06/15-linux_ocr_software_comparison
हालांकि, इन अन्य ABBYY उत्पादों की एक बहुत की तरह, वे पृष्ठ द्वारा चार्ज करते हैं, फिर से, आप काम करने के लिए एक्रोबैट बैच OCR प्राप्त करने की कोशिश कर रहे हैं।
** Ocrad, GOCR, OCRopus, tesseract, ** - ये काम कर सकते हैं लेकिन कुछ समस्याएं हैं:
- ओसीआर के परिणाम इन में से कुछ के लिए एक्रोबेट के रूप में महान नहीं हैं, कहते हैं (ऊपर लिंक देखें)।
- कोई भी प्रोग्राम पीडीएफ फाइल में नहीं जाता है और पीडीएफ फाइल का उत्पादन होता है। आपको एक स्क्रिप्ट बनानी होगी और पहले पीडीएफ को तोड़ना होगा और प्रत्येक पर प्रोग्राम चलाना होगा और फिर पीडीएफ के रूप में फाइल को फिर से जुटाना होगा
- एक बार जब आप ऐसा करते हैं, तो आप पा सकते हैं, जैसे मैंने किया था, यह (tesseract) एक OCR परत बनाता है जिसे ऊपर स्थानांतरित किया जाता है। इसलिए यदि आप 'द' शब्द को खोजते हैं, तो आपको इसके आगे के शब्द के भाग पर प्रकाश डाला जाएगा।
बैच DjVu → पीडीएफ में कनवर्ट करें - इसमें नहीं देखा गया है, लेकिन एक भयानक राउंड-ए-बाउट समाधान की तरह लगता है।
ऑनलाइन
- PDFcubed.com - आओ, वास्तव में एक बैच समाधान नहीं है।
- एबीबीवाई क्लाउड ओसीआर - सुनिश्चित नहीं है कि यह वास्तव में एक बैच समाधान है, या तो, आपको पेज द्वारा भुगतान करना होगा और यह काफी महंगा हो सकता है।
गैर-ओसीआर पीडीएफ की पहचान करना
यह थोड़ी आसान समस्या है, जिसे लिनक्स में आसानी से हल किया जा सकता है और विंडोज में बहुत कम। मैं यह pdffont
पहचानने के लिए एक पर्ल स्क्रिप्ट को कोड करने में सक्षम था कि क्या यह निर्धारित करने के लिए फोंट एम्बेडेड हैं कि कौन सी फाइलें-ओसीआर नहीं हैं।
वर्तमान "समाधान"
नॉन-ओसीआरड पीडीएफ़्स की पहचान करने के लिए एक स्क्रिप्ट का उपयोग करें (ताकि आप हजारों ओसीआर पीडीएफ पर फिर से न चलें) और इन्हें एक अस्थायी निर्देशिका में कॉपी करें (सही डायरेक्टरी ट्री को बरकरार रखते हुए) और फिर विंडोज पर एक्रोबैट का उपयोग इस उम्मीद से अधिक चलाने के लिए करें कि छोटा बैच क्रैश नहीं होंगे।
एक ही स्क्रिप्ट का उपयोग करें, लेकिन ठीक से काम करने के लिए लिनक्स ocr टूल्स में से एक प्राप्त करें, ocr गुणवत्ता को जोखिम में डालते हुए।
मुझे लगता है कि मैं # 1 का प्रयास करने जा रहा हूं, मैं लिनक्स OCR टूल के परिणामों के बारे में बहुत अधिक चिंतित हूं (मुझे नहीं लगता कि किसी ने तुलना की है) और फ़ाइलों को अलग करके उन्हें फिर से एक साथ सिलाई करने के लिए लगता है। अनावश्यक कोडिंग हो अगर Adobe वास्तव में OCR निर्देशिका को चोक किए बिना बैच सकता है।
यदि आप पूरी तरह से नि: शुल्क समाधान चाहते हैं, तो आपको गैर-ओसीआर पीडीएफ़ (या ओसीआरएड से अधिक बस पुनर्मिलन) की पहचान करने के लिए एक स्क्रिप्ट का उपयोग करना होगा, और फिर कोशिश करने के लिए और उन्हें ओसीआर करने के लिए एक लिनक्स टूल का उपयोग करना होगा। Teseract के सबसे अच्छे परिणाम प्रतीत होते हैं, लेकिन फिर से, इनमें से कुछ टूल उबंटू के आधुनिक संस्करणों में अच्छी तरह से समर्थित नहीं हैं, हालांकि यदि आप इसे सेट कर सकते हैं और उस समस्या को ठीक कर सकते हैं जहां मेरे पास पाठ-मिलान परत से मेल खाने वाली छवि परत नहीं है ( tesseract के साथ) तो आपके पास एक काम करने योग्य समाधान होगा और एक बार फिर लिनक्स> विंडोज।
क्या आपके पास पूरी तरह से स्वचालित करने के लिए एक कार्यशील समाधान है , बैच OCR PDF , उच्च गुणवत्ता के साथ पहले से ही OCRed फ़ाइलों को एक ही नाम रखते हुए लंघन है ? यदि हां, तो मैं वास्तव में इनपुट की सराहना करूंगा।
गैर-ओसीआर फ़ाइलों को अस्थायी निर्देशिका में स्थानांतरित करने के लिए पर्ल स्क्रिप्ट। इस काम की गारंटी नहीं दे सकता है और शायद इसे फिर से लिखने की आवश्यकता है, लेकिन अगर कोई इसे काम करता है (यह मानकर कि यह काम नहीं करता है) या बेहतर काम करता है, तो मुझे बताएं और मैं यहां एक बेहतर संस्करण पोस्ट करूंगा।
#!/usr/bin/perl
# move non-ocred files to a directory
# change variables below, you need a base dir (like /home/joe/), and a sourcedirectory and output
# direcotry (e.g books and tempdir)
# move all your pdfs to the sourcedirectory
use warnings;
use strict;
# need to install these modules with CPAN or your distros installer (e.g. apt-get)
use CAM::PDF;
use File::Find;
use File::Basename;
use File::Copy;
#use PDF::OCR2;
#$PDF::OCR2::CHECK_PDF = 1;
#$PDF::OCR2::REPAIR_XREF = 1;
my $basedir = '/your/base/directory';
my $sourcedirectory = $basedir.'/books/';
my @exts = qw(.pdf);
my $count = 0;
my $outputroot = $basedir.'/tempdir/';
open( WRITE, >>$basedir.'/errors.txt' );
#check file
#my $pdf = PDF::OCR2->new($basedir.'/tempfile.pdf');
#print $pdf->page(10)->text;
find(
{
wanted => \&process_file,
# no_chdir => 1
},
$sourcedirectory
);
close(WRITE);
sub process_file {
#must be a file
if ( -f $_ ) {
my $file = $_;
#must be a pdf
my ( $dir, $name, $ext ) = fileparse( $_, @exts );
if ( $ext eq '.pdf' ) {
#check if pdf is ocred
my $command = "pdffonts \'$file\'";
my $output = `$command`;
if ( !( $output =~ /yes/ || $output =~ /no/ ) ) {
#print "$file - Not OCRed\n";
my $currentdir = $File::Find::dir;
if ( $currentdir =~ /$sourcedirectory(.+)/ ) {
#if directory doesn't exist, create
unless(-d $outputroot.$1){
system("mkdir -p $outputroot$1");
}
#copy over file
my $fromfile = "$currentdir/$file";
my $tofile = "$outputroot$1/$file";
print "copy from: $fromfile\n";
print "copy to: $tofile\n";
copy($fromfile, $tofile) or die "Copy failed: $!";
# `touch $outputroot$1/\'$file\'`;
}
}
}
}
}