Как разобрать имя и фамилию из Pancard с помощью Visionkit в ios Swift? - PullRequest
1 голос
/ 14 февраля 2020

Я пытался проанализировать данные карты панорамирования в соответствующих полях. Но я не смог правильно разобрать. Здесь я использовал регулярные выражения, чтобы найти номер карты пан и дату рождения и результаты идеально. Но я не смог найти имя и фамилию правильно, потому что положение меняется.

Существует два типа пан-карты:

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 ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...