Я пытался проанализировать данные карты панорамирования в соответствующих полях. Но я не смог правильно разобрать. Здесь я использовал регулярные выражения, чтобы найти номер карты пан и дату рождения и результаты идеально. Но я не смог найти имя и фамилию правильно, потому что положение меняется.
Существует два типа пан-карты:
1.) Пан-карта 1 содержит имя, фамилию, номер карты панорамы, доб. 2.) Вторая карта панорамирования содержит Имя: имя пользователя, имя отца: имя отца пользователя, номер карты панорамирования и dob
Вот три различных блока текста:
Тип карты панорамирования : 2
**Block detected text 1:**
sira
feminT
INCOME TAX DEPARTMENT
Hd FOR
GOVT. OF INDIA
earril then tea ard
Permanent Account Number Card
argi Name
EJWPM0714E
FARHAZ MALIK
frat ast aral Father's Name
SHAKEEL MALIK
a aale/ Dete of Bi-th
08/08/1996
ner Signature
19012018
**Block detected Text 2:**
BITeTE fATHTST
HRA TROR
Scale document up. DEPARTMENT
INVUND
GOVT. OF INDIA
Arne ste
RITA cRaT Fran Tis
Permanent Account Number Card
ILDCK6689J
T / Name
SANJANA
furat nT FITH / Father's Name
CHALAMESH
: sanjans
10042019
Tre aft arita
Date of Birth
06/06/1996
& FaT&R / Signature
Тип карты панорамирования 1:
**Block detected Text 1:**
vSTreTa T feTHIST
INCOME TAX DEPARTMENT
HIRA thR
D MANIKANDAN
GOVT. OF INDIA
DURAISAMY
16/07/1986
Permanent Account Number
BNZPM2501F
D manliamolown
Signature
04082011
**Block detected Text 2**
Sirerabe famint
FIRA TROR
INCOME TAX DEPARTMENT
GOVT, OF INDIA
ANJANA KUMARI
KRISHAN KEWAL MUNJAL
12/08/1978
Parmanuit Account Numbot
ALMPK0554A
19 o.
Galat
signature
Вот код для поиска имени и фамилии: Здесь массив строк - это блок обнаруженный текст преобразуется в массив.
var lines: [String] = []
detectedText.enumerateLines { textLine, _ in
lines.append(textLine)
}
print(lines)
for (key, value) in lines.enumerated() {
print("i:::", value)
if self.validatePANCardNumber(value) == true {
print("pan card:::", value)
}
if self.validateDOB(value) == true {
print("dob pan:::", value)
}
if value.contains("/ Name") {
print("Item \(key + 1):value: \(lines[key + 1])")
let f_name = lines[key + 1]
print("first Name::", f_name)
}
if value.contains("/ Father's Name") {
print("Item \(key + 1):value: \(lines[key + 1])")
let last_name = lines[key + 1]
print("last Name::", last_name)
}
}
Как разобрать имя и фамилию в правильном поле?
Любая помощь, высоко ценится pls ..