Integracja z skanuj.to¶
Opis¶
Moduł ten powstał aby system mógł automatycznie wykrywać tekst z skanów, bądź zdjęć faktur. Integracja w module została wykonana tylko pod kątem samej usługi OCRa zatem nie wspieramy zakładanie firm, aktualizację kontrahentów itp. w pierwszej wersji.
Instalacja¶
Aby skorzystać z modułu wystarczy pobrać go z "X:\DBR\release\neos\modules\SkanujToOCR" i cały folder wkleić w "Neos\Modules\. Po zrestartowaniu NEOSa należy zweryfikować czy prawidłowo moduł został załadowany. Można to zrobić np. w logach NEOSa lub w oknie Neos.Runtime.exe.
Rejestracja w skanuj.to¶
Przy każdym wdrożeniu dla klienta należy założyć konto w systemie skanuj.to. Konto powinno zostać założone na klienta ponieważ klient wybiera odpowiedni pakiet dla swoich potrzeb. Na dzień dokumentacji na wiki po założeniu konta jest 45 dni darmowych, gdzie można zeskanować 200 stron.
Ważne!
Ważna uwaga płacimy za stronę, nie za dokument!!!
Wykorzystanie w kodzie¶
Aby zacząć pisać kod, który będzie wykonywał OCR należy najpierw posiadać konto w skanuj.to. Jeśli mamy konto to potrzebujemy odczytać indywidualny klucz API. Wystarczy zalogować się na swoje konto w skanuj.to a następnie przejść Ustawienia -> Hasło / Klucz API. Posiadając klucz API potrzebujemy wiedzieć jaki identyfikator posiada nasza "firma" w serwisie skanuj.to. Aby otrzymać tą informację mamy 2 drogi.
- Zadzwonić do BOK serwisu skanuj.to podać @ klienta, na które zostało założone konto i zapytać o CompanyID naszej firmy.
- Wystarczy wykonać następujący kod:
var authorization = new Authorization("login", "apiKey");
var ocrService = new OCRService(authorization);
IEnumerable<CompanyInfo> companies = ocrService.GetUserCompanies();
Zlecenie OCRu dla dokumentu (tryb prosty)¶
Gdy mamy już wszystkie informacje do autoryzacji (logi, apiKEY, id firmy) możemy napisać kod obsługujący OCRa. Najprościej wykorzystać metodę ProcessDocument, która przeprowadzi autoryzację, wyśle dokument do serwisu, poczeka na zakończenie procesu OCRowania, oraz pobierze i zwróci wynik.
Przykład wywołania metody ProcessDocument:
var authorization = new Authorization("login", "apiKey");
var ocrService = new OCRService(authorization);
// Ścieżka do pliku, ID firmy
var fileToOCR = new DocumentInput("Scieżka do pliku", <idFirmy>);
// Obiekt typu DocumentInput, Timeout w sekundach
var result = ocrService.ProcessDocument(fileToOCR, 120);
Ważne!
Z informacji na stronie cały proces OCRu trwa około 30 sekund. Jeśli usługa jest bardziej obciążona to ten czas może się wydłużyć.
Opis poszczególnych funkcji (tryb zaawansowany)¶
Jeśli metoda ProcessDocument nie jest wystarczająca i chcesz w inny sposób zorganizować proces biznesowy to możesz skorzystać z udostępnionych metod obiektu usługi.
Metoda wysyłająca dokument¶
Przykład metody wysyłającej dokument. Najważniejsze aby zapamiętać dokumentID który otrzymamy w odpowiedzi.
var authorization = new Authorization("login", "apiKey");
var ocrService = new OCRService(authorization);
// Ścieżka do pliku, ID firmy
var fileToOCR = new DocumentInput("Scieżka do pliku", <idFirmy>);
// Obiekt typu DocumentInput, Timeout w sekundach
var result = ocrService.SendDocument(fileToOCR);
var documentID = result.GoodUploads.FirstOrDefault()?.DocId;
Metoda sprawdzająca status przetworzenia dokumentu¶
Przykład metody, która zwraca informację czy dokument został już przetworzony. Po około 30 sekundach metoda ta powinna zwrócić true.
var authorization = new Authorization("login", "apiKey");
var ocrService = new OCRService(authorization);
// Ścieżka do pliku, ID firmy
var fileToOCR = new DocumentInput("Scieżka do pliku", <idFirmy>);
// ID dokumentu
var result = ocrService.CheckDocumentStatus(0);
Metoda pobierająca przetworzone dane dokumentu¶
Przykład metody, która zwraca przetworzone dane dokumentu.
var authorization = new Authorization("login", "apiKey");
var ocrService = new OCRService(authorization);
// Ścieżka do pliku, ID firmy
var fileToOCR = new DocumentInput("Scieżka do pliku", <idFirmy>);
// ID dokumentu
var result = ocrService.GetDocumentData(0);
Dodatkowe informacje¶
- Z wszystkich metod mogą polecieć wyjątki. Np. problem z autoryzacją, timeout, brak pliku pod wskazaną ścieżką itp. Należy zadbać o prawidłową obsługę tych wyjątków.
- API obsługuje następujące rozszerzenia plików: { ".pdf", ".tif", ".tiff", ".jpg" };
- Można wykonać OCR faktur wielo-stornicowych. Należy podczas tworzenia obiektu DocumentInput przekazać informację: multiPages.