반응형
취급하는 상품이 늘어나면서 계속 새로운 바코드 형식들을 추가해주고 있다.
UPC-A 형식의 바코드도 사용할 수 있도록 요청을 받았는데, iOS에서는 신기하게도 이 형식을 EAN-13으로 읽어들이는 것이었다.
찾아보니 12자리의 UPC-A 바코드 형식을 iOS에서는 맨 앞자리에 0을 더해주어 13자리의 EAN-13 형식으로 인식하도록 되어있다고 한다. 신기하구만.
UPC-A barcode Scan
그래서 바코드 스캔할 때 AVCaptureMetadataOutput()의 metadataObjectTypes에서도 .upca 형식은 없고 .ean13 형식을 추가해주면 그걸로 읽힌다.
그리고 바코드 인식결과 후처리로 다음과 같이 바코드 형식이 ean-13이고 시작하는 숫자가 0일 때 0을 제거하여 12자리의 upc-a 바코드로 변환을 해주어야 한다.
let barcodeType = metaDataObject.type.rawValue
let typee = barcodeType.split(separator: ".")[2]
if typee == "EAN-13" && StringCodeValue.hasPrefix("0") {
StringCodeValue = String(StringCodeValue.dropFirst())
}
찐 ean13 바코드의 맨 앞자리가 0일경우는 어떻게 구별하지? 걱정했는데 찾아보니 아마도 그런 경우는 없다고 봐도 될것 같다? ㅎ
UPC-A barcode Generate
인식 뿐 아니라 생성할 때도 EAN13 바코드 형식으로 생성해주면 되더라.
생성할 때는 다시 바코드 숫자 맨앞에 0을 추가해주고 ean13 형식 바코드를 생성해주면 된다.
바코드 밑의 숫자는 알아서 열두자리로 만들어주기!
728x90
반응형
'초보 iOS 개발자의 일상 > 개발 업무' 카테고리의 다른 글
[Swift iOS] Add UIButton actions in UITableView Cells with Code (0) | 2022.07.11 |
---|---|
[Swift iOS] 카카오 adfit 배너 광고 설정하기 (0) | 2022.07.05 |
[iOS] Fastlane을 이용한 배포 자동화 (0) | 2022.02.14 |
[iOS] 앱스토어 iOS 앱 이전 + 아카이브 경고 (3) | 2022.02.09 |
[Swift iOS] Naver CLOVA OCR (0) | 2022.01.18 |