Xambarcode를 사용하여 사람이 읽을 수 있는 텍스트가 있거나 없는 바코드 생성
다양한 너비와 간격을 가진 평행선 – 거의 모든 곳에 있습니다. 바코드는 광학 표현에 데이터를 할당하기 위한 표준이 된 오랜 역사를 가지고 있으며, 매장, 선적 컨테이너 및 기타 수많은 품목에서 광범위한 상품을 식별할 수 있게 하여 여러 산업 프로세스를 간소화할 수 있었습니다.
다양한 너비와 간격을 가진 평행선 – 거의 모든 곳에 있습니다. 바코드는 광학 표현에 데이터를 할당하기 위한 표준이 된 오랜 역사를 가지고 있으며, 매장, 선적 컨테이너 및 기타 수많은 품목에서 광범위한 상품을 식별할 수 있게 하여 여러 산업 프로세스를 간소화할 수 있었습니다.
바코드는 매우 대중적이고 유용하기 때문에 응용 프로그램에서 이러한 방식으로 데이터를 표시해야 할 수도 있으며 Infragistics' XAML 패키지(WPF용 NetAdvantage, Silverlight 및 Windows Phone)는 바로 이를 도와줄 수 있습니다. XamBarcode는 실제로 기본 클래스일 뿐이며 다양한 표준을 기반으로 하는 선과 모양이 있는 그래픽으로 데이터를 표시할 수 있는 컨트롤 제품군의 일반적인 이름입니다. 꽤 많은 기호가 있으므로 관심이 있다면 설명서에서 이에 대해 광범위하게 읽을 수 있습니다(Silverlight 도움말 페이지이지만 다른 제품에도 동일한 정보가 포함되어 있음). 각각은 개발자를 위해 가능한 한 많은 작업을 절약하기 위해 노력합니다 – 규칙을 알기 위해 규칙을 알 필요가 없으며 대부분의 경우 인코딩하고 즐기려는 데이터를 제공하기만 하면 됩니다. 또한 각 컨트롤은 하나의 기호만 처리하므로 XAML에 바코드를 훨씬 간단하게 추가할 수 있습니다(실제로 간단합니다. 아래에서 볼 수 있음).
이제 비선형 구조로 인해 추가 옵션이 있는 몇 가지 특수 코드(예: QR 코드)가 있지만 Code 128 또는 Ean/Upc 코드와 같은 대부분의 선형 유형에는 바로 아래에 데이터가 표시됩니다. 12.1에는 CTP 이미징 라이브러리와 함께 이를 숨길 수 있는 작은 업데이트가 있어 '바코드화'를 더 쉽게 할 수 있습니다.
사람이 읽을 수 있는 텍스트
이 부분은 바코드가 기계가 읽을 수 있고 일부 표준에서는 바코드 리더기 없이도 여전히 의미를 전달하는 친근한 이미지를 제공하기 때문에 사람이 읽을 수 있는 텍스트라고 하는 것이 매우 적절합니다.

이 모든 것이 매우 좋지만 바코드만 필요한 경우, 해당 텍스트가 필요하지 않거나 합리적이지 않은 경우가 있을 수 있습니다. 최근에 데이터를 표시해야 하는지 또는 잉크를 낭비해야 하는지 여부를 제어할 수 있도록 이러한 속성이 있는 컨트롤에 새로운 속성이 추가되었습니다. 이제 다음 코드에 대해 간단한 'ShowText' 속성을 사용할 수 있습니다.
- 코드 39
- Code 128
- 이안/오순절
- 인터리브 2/5
- GS1 데이터바
- 로얄 메일
작은 변화이지만 영향력이 매우 클 수 있으므로 사용 방법을 살펴보겠습니다!
Adding Barcodes
필요한 참조를 추가하여 시작합니다(이름은 플랫폼 간에 동일함) Infragistics <platform>.v12.1.dll, Infragistics <platform>. DataVisualization.v12.1.dll, Infragistics <플랫폼>. Controls.Barcodes.v12.1.dll. XamBarcode 컨트롤을 설정하고, 데이터를 제공하고, 사람이 읽을 수 있는 텍스트를 제어하는 작업은 바인딩을 통해서만 XAML에서만 쉽게 수행할 수 있습니다. 예를 들어 사용자가 필드에 데이터를 입력하고 일종의 스위치(토글 버튼, 라디오 버튼, 확인란 등)를 제공하여 "ShowText"를 바인딩하도록 합시다.
<TextBox x:Name="userInput"/> <ToggleButton x:Name="textToggle" IsChecked="True">show/hide text</ToggleButton>
그런 다음 페이지에 몇 가지 Xam<code>Barcode 컨트롤을 추가합니다.
xmlns:ig="http://schemas.infragistics.com/xaml" <ig:XamCode39Barcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" /> <ig:XamCode128Barcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Column="1"/> <ig:XamEanUpcBarcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Column="2"/> <ig:XamInterleaved2Of5Barcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Row="1" /> <ig:XamGs1DataBarBarcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Row="1" Grid.Column="1"/> <ig:XamRoyalMailBarcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Row="1" Grid.Column="2"/>
약간의 정리와 스타일링 후 데모는 다음과 같이 보일 수 있습니다.

내가 추가한 몇 가지 추가 버튼이 있으며 아래에서 이에 대해 언급할 것이지만 지금은 선택하지 않으면 모든 바코드가 텍스트를 잃게 되는 'show'hide' 토글 버튼에 관심이 있습니다.

그것을 최대한 활용하기
사용자가 텍스트에서 일어나는 일을 제어하도록 하는 것 외에도 코드에서도 설정할 수 있으며 이에 대한 몇 가지 흥미로운 응용 프로그램도 있습니다. 당신이 할 수 있는 일은 읽을 수 있는 데이터와 함께 사용자에게 바코드를 표시한 다음 인쇄 직전에 숨기거나 그 반대의 경우입니다! WPF 응용 프로그램에서 어떻게 보이는지 보여줍니다 (바코드가 많으므로 토글 버튼을 전환하여 모든 바코드에 적용하지만 바코드 컨트롤을 대신 사용할 수 있습니다).
private void PrintButton_Click(object sender, RoutedEventArgs e) { //print document PrintDialog printDialog = new PrintDialog(); if (printDialog.ShowDialog() == true) { //turn text off if it's visible if (this.textToggle.IsChecked == true) { this.textToggle.IsChecked = false; _changed = true; } //print printGrid.Measure(new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight)); printGrid.Arrange(new Rect(10,10,printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight)); printDialog.PrintVisual(printGrid, "Barcodes Docs"); // set text back on if it was removed for printing if (_changed) { this.textToggle.IsChecked = true; _changed = false; } } }
또한 제가 언급한 CTP 기능은 Silverlight 애플리케이션이 이미지를 인코딩하는 데 도움이 됩니다. 사용자가 텍스트와 함께 또는 텍스트 없이 응용 프로그램에 바코드 이미지를 저장할 수 있도록 하고 이미지의 품질을 제어할 수도 있습니다.
using (Stream stream = saveDialog.OpenFile()) { Infragistics.Imaging.JpegImageEncoder jpgEncoder = new Infragistics.Imaging.JpegImageEncoder(); List<EncodingProperty> qualityList = new List<EncodingProperty>(); qualityList.Add(new JpegQualityProperty() { Quality = 100 }); jpgEncoder.Encode(bitmap, qualityList, stream); }
결론
바코드가 유용하다는 것은 의심의 여지가 없습니다 – 바코드는 데이터 패킹이 될 수 있고, 프로세스를 간소화하고 구성할 수 있으며, 어디에나 있습니다. XAML 바코드 컨트롤을 사용하면 널리 사용되는 이러한 기능을 응용 프로그램에 매우 쉽게 통합할 수 있습니다. 이제 사람이 읽을 수 있는 텍스트로 선형 바코드의 비주얼을 훨씬 더 세밀하게 제어할 수 있습니다 – 사용자에게 적절하게 표시하거나 이미지에 인쇄 또는 저장하기 위해 표시하거나 숨길 수 있습니다!
위에 표시된 Silverlight 및 WPF용 데모를 다운로드할 수 있습니다. 또한 Silverlight 온라인 샘플을 방문하여 다양한 유형의 코드가 작동하는 것을 모두 볼 수있습니다! 그리고 위의 링크에서 WPF를 다운로드하고 마켓에서 Windows Phone 샘플을 찾을 수 있습니다.
Twitter에서 팔로우하기@ Infragistics경쟁에 참여하십시오.페이스북 그리고 우리에게 투표하는 것을 잊지 마십시오. 코드 프로젝트 리더스 초이스 어워드!