내용으로 건너뛰기
Xambarcode를 사용하여 사람이 읽을 수 있는 텍스트가 있거나 없는 바코드 생성

Xambarcode를 사용하여 사람이 읽을 수 있는 텍스트가 있거나 없는 바코드 생성

다양한 너비와 간격을 가진 평행선 – 거의 모든 곳에 있습니다. 바코드는 광학 표현에 데이터를 할당하기 위한 표준이 된 오랜 역사를 가지고 있으며, 매장, 선적 컨테이너 및 기타 수많은 품목에서 광범위한 상품을 식별할 수 있게 하여 여러 산업 프로세스를 간소화할 수 있었습니다.

6min read

다양한 너비와 간격을 가진 평행선 – 거의 모든 곳에 있습니다. 바코드는 광학 표현에 데이터를 할당하기 위한 표준이 된 오랜 역사를 가지고 있으며, 매장, 선적 컨테이너 및 기타 수많은 품목에서 광범위한 상품을 식별할 수 있게 하여 여러 산업 프로세스를 간소화할 수 있었습니다.

바코드는 매우 대중적이고 유용하기 때문에 응용 프로그램에서 이러한 방식으로 데이터를 표시해야 할 수도 있으며 Infragistics' XAML 패키지(WPF용 NetAdvantage, SilverlightWindows 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"/>

약간의 정리와 스타일링 후 데모는 다음과 같이 보일 수 있습니다.

여러 바코드 컨트롤이 있는 데모 응용 프로그램에는 모두 'ShowText' 속성이 토글 버튼에 있습니다.

내가 추가한 몇 가지 추가 버튼이 있으며 아래에서 이에 대해 언급할 것이지만 지금은 선택하지 않으면 모든 바코드가 텍스트를 잃게 되는 '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경쟁에 참여하십시오.페이스북 그리고 우리에게 투표하는 것을 잊지 마십시오. 코드 프로젝트 리더스 초이스 어워드!

데모 요청