как разобрать имя и фамилию с 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)

                }


            }

Как разобрать имя и фамилию в правильном поле?

Любая помощь очень ценится, пожалуйста.

0 ответов

Другие вопросы по тегам