Java 및 Kotlin에서 데스크톱 바코드 스캐너를 빌드하는 방법

Dynamsoft는 모바일 및 데스크탑 개발을 위한 Java Barcode SDK를 제공합니다. 모바일 버전은 Android AAR 패키지로 배포되며 데스크톱 버전은 JAR 패키지로 배포됩니다. 이 문서는 Java 또는 Kotlin으로 데스크톱 또는 서버 측 바코드 스캐너 애플리케이션을 구축하려는 개발자를 돕는 것을 목표로 합니다.

Gradle을 통해 Dynamsoft Barcode Reader 설치



Dynamsoft Barcode Reader을 가져오려면 download the SDK을 직접 구성하거나 자동 빌드 도구에 대해 Maven URL을 구성할 수 있습니다. Gradle을 사용하여 Java 또는 Kotlin 바코드 스캐너 프로젝트를 생성하는 것이 좋습니다.

단계는 다음과 같습니다.

  • 새 Gradle 프로젝트를 만듭니다.

    $ gradle init
    Select type of project to generate:
    1: basic
    2: application
    3: library
    4: Gradle plugin
    Enter selection (default: basic) [1..4] 
    
    Select implementation language:
    1: C++
    2: Groovy
    3: Java
    4: Kotlin
    5: Scala
    6: Swift
    Enter selection (default: Java) [1..6] 
    
    Split functionality across multiple subprojects?:
    1: no - only one application project
    2: yes - application and library projects
    Enter selection (default: no - only one application project) [1..2] 
    
    Select build script DSL:
    1: Groovy
    2: Kotlin
    Enter selection (default: Kotlin) [1..2] 
    


  • 앱 > build.gradle로 이동하여 Dynamsoft에서 호스팅하는 Maven 리포지토리와 종속성을 추가합니다.

    repositories {
        // Use JCenter for resolving dependencies.
        jcenter()
        maven {
            url "http://download2.dynamsoft.com/maven/dbr/jar"
        }
    }
    
    dependencies {
        // Use JUnit test framework.
        testImplementation 'junit:junit:4.13'
    
        // This dependency is used by the application.
        implementation 'com.google.guava:guava:29.0-jre'
    
        // Dynamsoft Barcode Reader SDK
        implementation 'com.dynamsoft:dbr:8.1.2'
    }
    

    참고: Android 바코드 스캐너 프로젝트 빌드의 경우 URL과 패키지 이름이 다릅니다.

    repositories {
        maven {
            url "http://download2.dynamsoft.com/maven/dbr/aar"
        }
    }
    
    dependencies {
        implementation 'com.dynamsoft:dynamsoftbarcodereader:latest.release@aar'
    }
    


  • Windows, Linux 및 macOS용 Java 바코드 스캐너 애플리케이션



    Dynamsoft Java Barcode SDK는 JNI(Java Native Interface)로 구현됩니다. 따라서 ZXing과 같은 순수한 Java SDK보다 더 나은 성능을 제공합니다. 기본 기술은 C++이지만 SDK는 여러 운영 체제에 대한 기본 라이브러리를 래핑했습니다.

    App.java 또는 App.kt 파일을 열어 다음과 같이 바코드 판독기 개체를 인스턴스화할 수 있습니다.

    // Java
    import com.dynamsoft.dbr.*;
    
    BarcodeReader br = new BarcodeReader(license);
    



    // Kotlin
    import com.dynamsoft.dbr.*
    
    val br = BarcodeReader(license)
    


    모든 API 기능을 잠금 해제하려면 here을 클릭하여 30일 무료 평가판 라이선스를 받으세요.

    Dynamsoft는 개발자가 특정 시나리오에 대한 사용자 지정 알고리즘을 허용합니다. 따라서 free barcode online demo을 방문하여 매개변수 초기화를 위한 적절한 템플릿을 생성할 수 있습니다.

    // Java
    br.initRuntimeSettingsWithString("{\"ImageParameter\":{\"Name\":\"Balance\",\"DeblurLevel\":5,\"ExpectedBarcodesCount\":512,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"},{\"Mode\":\"LM_STATISTICS\"}]}}", EnumConflictMode.CM_OVERWRITE);
    



    // Kotlin
    br.initRuntimeSettingsWithString("{\"ImageParameter\":{\"Name\":\"Balance\",\"DeblurLevel\":5,\"ExpectedBarcodesCount\":512,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"},{\"Mode\":\"LM_STATISTICS\"}]}}", EnumConflictMode.CM_OVERWRITE)
    


    다음 샘플 코드는 이미지 파일에서 바코드를 읽고 모든 결과를 인쇄하는 데 사용됩니다.

    // Java
    results = mBarcodeReader.decodeFile(file, "");
    for (TextResult result : results) {
        System.out.println(String.format("  Barcode %d:", index++));
        if(result.barcodeFormat != 0){
            System.out.println("    Type: " + result.barcodeFormatString);
        } else {
            System.out.println("    Type: " + result.barcodeFormatString_2);
        }
    
    
        System.out.println("    Value: " + result.barcodeText);
    
        System.out.println(String.format("    Region points: {(%d,%d),(%d,%d),(%d,%d),(%d,%d)}",
        result.localizationResult.resultPoints[0].x, result.localizationResult.resultPoints[0].y,
        result.localizationResult.resultPoints[1].x,result.localizationResult.resultPoints[1].y,
        result.localizationResult.resultPoints[2].x,result.localizationResult.resultPoints[2].y,
        result.localizationResult.resultPoints[3].x,result.localizationResult.resultPoints[3].y));
    }
    



    // Kotlin
    val results: Array<TextResult> = br.decodeFile(file, "")
    for (result in results) {
        println(String.format("  Barcode %d:", index++))
        if (result.barcodeFormat != 0) {
            System.out.println("    Type: " + result.barcodeFormatString)
        } else {
            System.out.println("    Type: " + result.barcodeFormatString_2)
        }
        System.out.println("    Value: " + result.barcodeText)
        println(
            java.lang.String.format(
                "    Region points: {(%d,%d),(%d,%d),(%d,%d),(%d,%d)}",
                result.localizationResult.resultPoints.get(0).x,
                result.localizationResult.resultPoints.get(0).y,
                result.localizationResult.resultPoints.get(1).x,
                result.localizationResult.resultPoints.get(1).y,
                result.localizationResult.resultPoints.get(2).x,
                result.localizationResult.resultPoints.get(2).y,
                result.localizationResult.resultPoints.get(3).x,
                result.localizationResult.resultPoints.get(3).y
            )
        )
    }
    


    몇 줄의 코드로 간단한 명령줄 바코드 스캐너가 완성됩니다.

    다음은 흐릿한 QR 코드 이미지입니다.



    이제 지정된 인수로 Gradle 명령을 실행할 수 있습니다.

    ./gradlew run --args="../../images/QR-Blurred.jpg ../../license.txt"
    




    Travis CI를 사용하여 Java 애플리케이션 테스트



    바코드 스캐너 애플리케이션이 크로스 플랫폼인지 확인하기 위해 GitHub 리포지토리에 대한 .travis.yml 파일을 생성합니다.

    language: java
    
    jobs:
      include:
        - name: "Linux"
          os: linux
        - name: "macOS"
          os: osx
        - name: "Windows"
          os: windows           
          language: shell       
          before_install:
            - choco install jdk8 -params 'installdir=c:\\jdk' -y;
            - export JAVA_HOME=${JAVA_HOME:-/c/jdk};
          env: PATH=/c/jdk/bin:$PATH
    
    branches:
      only:
        - main
    
    script:
      - if [[ ${TRAVIS_OS_NAME} != "windows" ]]; then
            chmod +x java/gradlew;
            chmod +x kotlin/gradlew;
        fi
      - cd java
      - ./gradlew test
      - ./gradlew run --args="../../images/AllSupportedBarcodeTypes.png"
      - cd .. 
      - cd kotlin
      - ./gradlew test
      - ./gradlew run --args="../../images/AllSupportedBarcodeTypes.png"
    

    chmod +x 스크립트 파일이 Linux 및 macOS에서 작동하도록 하려면 ' gradlew '를 추가해야 합니다.

    소스 코드



    https://github.com/yushulx/gradle-java-kotlin-barcode-sample

    좋은 웹페이지 즐겨찾기