가상 바코드 생성(JAN 코드 지원)

7755 단어 TypeScriptbarcodetech
바코드(이미지)를 만드는 도구는 무한하지만 바코드(코드)를 만드는 도구가 없어서 만들었습니다.
바코드에 규격이 있는지, 규격에 맞는지 확인하는 기관도 있다.내용은 간단하다. 예를 들어 JAN코드라고 불리는 규격이라면 다음과 같다.
13위의 경우
{事業者コード9桁}{商品アイテムコード3桁}{チェックデジット1桁}
위에서 말한 바와 같이 바코드의 마지막 순서는 검사와 검사이다.이것은 격자 디지털이라고 불린다.
숫자를 검사하는 계산 방법은 다음과 같은 순서에 따라 진행한다.
  • 에 검사 숫자를 제외한 모든 짝수 비트의 수량
  • 을 더하다
  • 위의 3배 향상
  • 에 검사 숫자를 제외한 모든 홀수 비트의 수량
  • 을 더하다
  • 에 2와 3을 더한 결과
  • 10에서 3을 뺀 다음 수치가 바코드의 마지막 수치와 일치할 때 기준을 만족시킨다
  • 상세한 것은 아래 문장을 보십시오.
    격자 숫자의 계산 방법
    바코드 형태로 입력해 확인 디지털 검증을 할 때 먼저 통과하려고 할 때 실물을 하나하나 찾아가는 바코드도 번거롭기 때문에 가상 바코드를 만드는 스크립트를 썼다.
    https://github.com/ushironoko/fake-barcode-generator
    src/generator.ts
    function main(len: string[]) {
      try {
        const r = Math.random()
          .toString(10)
          .slice(-len[2] + 1)
    
        const body = [...r].map((s) => +s)
    
        const evenSum = body.filter((_, i) => i % 2 === 0).reduce((a, b) => a + b)
        const oddSum = body.filter((_, i) => i % 2 !== 0).reduce((a, b) => a + b)
    
        const checkDesit = 10 - +(evenSum * 3 + oddSum).toString().slice(-1)
        console.log(`${r}${checkDesit}`)
      } catch (e) {
        console.error(e)
      }
    }
    
    main(process.argv)
    
    package.json
      "scripts": {
        "gen": "npx ts-node src/generator.ts 14"
      },
    
    는 기본적으로 쓰기를 위해 제작된 것이기 때문에 카드 주위가 어수선하지만 yarn gen만 해도 JAN 코드를 통해 검증된 수치를 얻을 수 있어 편리하다.14자리 숫자를 결정하는 부분도 용도에 따라 바꿀 수 있다.
    이번에는 필요한 최소한의 기능만 실시했다.확장하려면 JAN과 EAN 같은 문자열을 매개 변수로 수신하고, 이 규격에 따라 코드console.log를 뱉을 수 있으며, cli와 웹에서 사용하지 않습니다.ts-node로 이동하고 있기 때문에barcodeGenerator export를 라이브러리로 구축해도 된다고 합니다.(뭐가 필요한지 모르겠지만)

    좋은 웹페이지 즐겨찾기