netbarcodewriter 라이브러리에서 생성된 Code128 바코드가 스캔되지 않는 원인은 무엇입니까?

StackOverflow https://stackoverflow.com//questions/20045056

  •  26-12-2019
  •  | 
  •  

문제

Netbarcodewriter를 사용하려고 합니다. https://github.com/simonh/barcodes code128 바코드를 생성합니다.생성된 바코드는 일부 스마트폰 앱에서만 스캔할 수 있으며 USB 스캐너나 당사가 보유하고 있는 견고한 Windows Mobile 6 스캐너에서는 스캔할 수 없습니다.

예를 들어 첨부된 이미지에는 다양한 소스에서 인코딩된 "502337700000000198"이 표시되며 단 1개의(ios) 스마트폰 앱만 표시됩니다. Zbarcode는 netbarcodewriter가 생성한 바코드를 스캔할 수 있습니다. 1, 다른 것(attscanner)은 할 수 없습니다.USB 스캐너나 견고한 Windows CE 터미널 중 어느 것도 스캔하지 않습니다.

from netbarcodewriter

from raco

from itextsharp

string huid = "502337700000000198";

short w = 251;
short h = 100;
short x = 28;
Code128 code = new Code128();

var b2mp = code.Generate(huid, new BarcodeSettings { BarHeight = 65, WideWidth = w - 2 * x });
b2mp.Save(string.Format(@"c:\temp\{0}.png", huid), ImageFormat.Png);

itextsharp에 의해 생성된 경우 3 또는 racoindustries.com/barcodegenerator/1d/code-128.aspx와 같은 사이트에서 2, 모든 스캐너가 작동합니다.iTextSharp의 바코드가 너무 작아서 BarcodeSize 속성을 설정할 수 없습니다.

이 도서관에서 일한 사람이 있나요?또한 #MARKER 회색 직사각형의 기능을 아는 사람이 있나요?

도움을 주시면 감사하겠습니다.

도움이 되었습니까?

해결책

일종의 버그입니다.새로운 Code128 클래스를 생성하면 기본 설정이 지정됩니다.코드 128의 경우 이는 모듈 패딩(인코딩된 숫자 사이의 공백)을 0으로 설정하는 것을 의미합니다.

위에 있는 코드에서는 새 설정 개체를 전달합니다.이렇게 하면 패딩이 기본값인 2로 다시 설정되므로 간격이 추가됩니다.

또한 WideWidth.이것은 Code128에서는 사용되지 않습니다. NarrowWidth 이는 막대의 너비이며 기본값은 2입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top