Переименование pdf-файла (отсканированного документа) с помощью OCR. Он должен прочитать 3 зоны и переименовать соответственно. например Название улицы_Фамилия_Дата.pdf

У меня проблемы с кучей документов. Я хочу, чтобы он был оцифрован, чтобы упростить поиск и, следовательно, сократить огромное количество времени, затрачиваемого на просмотр документов.

Это довольно просто: я хочу сканировать документы с одинаковым макетом и переименовывать их в соответствии с 3 областями документа. В моем случае это ссылочный номер, фамилия и дата, указанные в документе. Было бы еще лучше, если бы он мог перемещать файлы в папки, названные в честь области в документе.

Вот изображение, в основном это, но с сотнями PDF-файлов в пакете.

http://i.imgur.com/8vwwyEb.png

Я не мог найти никакого решения в течение нескольких дней, и все же технология существует. Вы когда-нибудь сталкивались с такой проблемой и находили решение? Я был бы очень признателен за вашу помощь.

Я нашел закрывающую программу FileCenter, но вам нужно нажимать кнопку для каждого сканирования. Использование OCR для существующих файлов требует, чтобы вы прошли меню в 3 щелчка для каждого файла. Интересно, есть ли простая пакетная программа, в которой вы просто выбираете прямоугольники, а она выполняет часть переименования.

Я отредактирую этот ОП, если будет найдено какое-либо решение, для тех, кто погуглил.


person someguywithaquest    schedule 17.03.2016    source источник


Ответы (1)


Вы можете сделать это с помощью коммерческого компонента ByteScout PDF Extractor SDK, разработанного специально для этой цели. . Он может извлекать текст из заданной области по координатам с опциональным распознаванием символов (которое также работает в выбранной области извлечения) в пакетном режиме. Координаты региона для извлечения текста можно измерить в базовом документе с помощью бесплатного PDF Multitool утилита (при условии, что все ваши PDF-файлы используют один и тот же макет).

Вы можете извлечь текст из заданных областей в С#, например, используя OCR (английский язык):

using System;
using System.IO;
using System.Text;
using Bytescout.PDFExtractor;
using System.Drawing;
using System.Diagnostics;

namespace Example
{
    class Program
    {
     static void Main(string[] args)
     {
    // Create Bytescout.PDFExtractor.TextExtractor instance
    TextExtractor extractor = new TextExtractor();
    extractor.RegistrationName = "demo";
    extractor.RegistrationKey = "demo";
    // enable OCR auto mode, will use English by default
    extractor.OCRMode = OCRMode.Auto; 

    string sourceFile = "sample.pdf";

    // Load source PDF file
    extractor.LoadDocumentFromFile(sourceFile);

    // extract from given area (measured from base typical file using PDF Multitool utility), assuming we have a reference string there

    extractor.SetExtractionArea(Rectangle.FromLTRB(10, 10, 100,100));
    string extractedReference = extractor.GetTextFromPage(0).Trim();
    extractor = null; // dispose the extractor and release the original file

    // Copy the original file into the file with filename based on the original reference so it will be like "1234-sample.pdf" 
    string outputFile =  extractedReference + "-" + sourceFile;
    File.Copy(sourceFile, outputFile);

    Console.WriteLine();
    Console.WriteLine(inputFile + " has been copied to " + outputFile);
    Console.WriteLine("Press any key to continue...");
    Console.ReadKey();

  }
 }
}

Раскрытие информации: я связан с ByteScout

person Eugene    schedule 23.03.2016