Форум программистов, компьютерный форум, киберфорум
Языки JVM
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 14
1

Groovy Выдернуть слово из скана документа

25.10.2018, 13:55. Показов 5490. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Dobriy den'
today interesnaya zadacha

immetsa skan documenta
neobhodimo vidernut' nujnyi word

Visual studio code & localhost console groovy & ocrTools

_______________________________________
VSC: processHocrData
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
   if (pages.list().size() > 0) {
                        def pagesList = pages.list()
                        pagesList[0..(hocrFiles.size() > 1 ? 0 : (pagesList.size() - 1))].eachWithIndex { page, pageIndex ->
                            //def page = pages.list()[0]
                            def pageResult = parsePage(page, pageIndex)
                            
                            //pageResult.words.sort { a,b -> -(a.bbox.x2 <=> b.bbox.x2) }
 
                            def mostLeftX, mostTopY, mostRightX, mostBottomY
 
                            pageResult.words.each { pageWord ->
                                //println 'On word: ' << pageWord
                                if (pageWord.text.trim().size() > 3) {
                                    if (pageWord.bbox.x1 < mostLeftX || mostLeftX == null) {
                                        mostLeftX = pageWord.bbox.x1
                                    }
                                    if (pageWord.bbox.y1 < mostTopY || mostTopY == null) {
                                        mostTopY = pageWord.bbox.y1
                                    }
                                    if (pageWord.bbox.x2 > mostRightX || mostRightX == null) {
                                        mostRightX = pageWord.bbox.x2
                                    }
                                    if (pageWord.bbox.y2 > mostBottomY || mostBottomY == null) {
                                        mostBottomY = pageWord.bbox.y2
                                    }
                                }
                                
                            }
 
                            log.info 'mostLeftX: ' << mostLeftX
                            log.info 'mostTopY: ' << mostTopY
                            log.info 'mostRightX: ' << mostRightX
                            log.info 'mostBottomY: ' << mostBottomY
                            pageResult.mostLeftX = mostLeftX
                            pageResult.mostTopY = mostTopY
                            pageResult.mostRightX = mostRightX
                            pageResult.mostBottomY = mostBottomY
                            
 
                            pageResult.documentWidth = pageResult.mostRightX - pageResult.mostLeftX
                            pageResult.documentHeight = pageResult.mostBottomY - pageResult.mostTopY
 
                            pageResult.words.each { pageWord ->
                                    pageWord.xDocumentLocation = pageWord.xLocation - pageResult.mostLeftX
                                    pageWord.yDocumentLocation = pageWord.yLocation - pageResult.mostTopY 
                                    
                             }
_________________________________________________
groovy Console code
Код
def rule3 = [ 
    accountId: new ObjectId(accountId),
    "schemaName" : "INCOME_INVOICE", 
    "weight" : 1,
    //"given": ["customerOfficialId":"972-086-54-31"],
    "field" : "issuedDate", 
    "conditions" : [ 
        [ "instanceOf" : "DATE" ],
        [
            "operator" : "greaterThan",
            "property" : "yDocumentLocation",
            "expression" : "%50(page.documentHeigth)"
        ],
          [
                        
              "operator" : "greaterThan",
              "property" : "xDocumentLocation", //was: xLocation
              "expression" : "%50(page.documentWidth)" //"%50(page.mostRightX)"
         ] 
    ], 
    "enforcedBy" : [ 
        [ "weight":2,  "operator" : "rightTo", "regex" : "d.*a" ],
        [ "weight":2, "operator" : "rightTo", "regex" : "w.*st.*w.*a" ],
        [ "weight":2, "operator" : "rightTo", "regex" : "f.*y" ], 
        //[ "weight":2, "operator" : "rightTo","regex": "s.*y"]
    ] 
]
__________________________________________________________________
na vihode :
On rule: 5bd19e8dcb6abb19418f5183
On word: {type=WORD, class=DATE, id=word_1_108, pageIndex=0, parent=line_1_39, bbox={x1=2214, y1=2154, x2=2412, y2=2190, width=198}, text=2018-10-08, yLocation=2154, xLocation=2214, xDocumentLocation=641, yDocumentLocation=1969, fontSize=19.801197863752737}
Checking conditions: [ { "instanceOf" : "DATE"} , { "operator" : "greaterThan" , "property" : "yDocumentLocation" , "expression" : "%50(page.documentHeigth)"} , { "operator" : "greaterThan" , "property" : "xDocumentLocation" , "expression" : "%50(page.documentWidth)"}]
Evaluating condition greaterThan
Evaluating condition for property: yDocumentLocation
Property value is: 1969, class java.lang.Integer
Got expression value: null
Evaluated (false) conditions for word: {type=WORD, class=DATE, id=word_1_108, pageIndex=0, parent=line_1_39, bbox={x1=2214, y1=2154, x2=2412, y2=2190, width=198}, text=2018-10-08, yLocation=2154, xLocation=2214, xDocumentLocation=641, yDocumentLocation=1969, fontSize=19.801197863752737}
No resolved values. Finishing workflow
Done
Добавлено через 12 минут
vse operatory rabotayt horosho

tolko segodnia sdelal DOCUMENTLOCATION
i script perestal vidergivat' slova
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2018, 13:55
Ответы с готовыми решениями:

Создание в формате PDF скана документа и отправка его на емейл
Привет, как реализовать сканирование документа в пдф и отправка его на емейл одним кликом?

Выдернуть все слова из документа
Пожалуйста, есть ли возможность выдернуть все слова из документа и собрать их в новый документ?...

Выдернуть из сайта слово в текстбокс
Попробовал так на 4.netFramework'e ( c Xneto'm) всё работает как часы!) using (HttpRequest req =...

Groovy Error: no Groovy library is defined for module
Error:Cannot compile Groovy files: no Groovy library is defined for module 'untitled104' Что это за...

4
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.10.2018, 14:00 2
Nichego nie ponyatno. Chego tebe nado?
1
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 14
25.10.2018, 15:58  [ТС] 3
Добавлено через 1 час 43 минуты
Okay
u menia est' Heigth & Width vsei stranicy
a mne nado opredelit' documentHeigth & documentWidth

kak eto pravilno sdelat'?

imeetsa xLocation & yLocation
takje est' xDocumentLocation & yDocumentLocation
v code vishe eto vidno
thx

Добавлено через 7 минут
xoraxax, tak ya dumayu budet luchshe)
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.10.2018, 17:13 4
Цитата Сообщение от MonkeyKing Посмотреть сообщение
v code vishe eto vidno
v code vishe nihrena ne vidno
0
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 14
26.10.2018, 12:39  [ТС] 5
Problema reshena
bonalnaya oshibka
Sledite za svoim codom bro's
0
26.10.2018, 12:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2018, 12:39
Помогаю со студенческими работами здесь

Groovy Присвоение ввода с клавиатуры переменной в Groovy
Map rim_arab = BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) print...

Groovy Теоретически-практический ? про замыкания (Groovy)
order = V = 0; n = 3 def Vid = {it -&gt; print it; print V if ((V+1)%n ==...

Groovy Groovy и Андроид - работают ли вместе?
Здравствуйте. Недавно прочитал про Groovy и выделил для себя несколько приятных плюсов по сравнению...

Groovy Ошибка: Groovy files
Написал программу, которая работает с БД MySQL. Но при запуске выкидывает ошибку про Groovy файлы....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru