как разобрать имя и фамилию с pancard с помощью Visionkit в ios swift?
Я пытался разобрать данные карты в соответствующие поля. Но я не смог правильно разобрать. Здесь я использовал регулярное выражение, чтобы найти номер карты и дату рождения, и результаты были идеальными. Но мне не удалось правильно найти имя и фамилию, потому что позиция меняется.
Есть два типа Пан-карты:
1.) Первая карта содержит имя, фамилию, номер карты, доб. 2.) Вторая карта содержит имя: имя пользователя, имя отца: имя отца пользователя, номер карты и доб
Вот блок трех разных текстов:
Тип карты Pan: 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)
}
}
Как разобрать имя и фамилию в правильном поле?
Любая помощь очень ценится, пожалуйста.