Porting Barcode Professional to Windows 8 WinRT API

Our team has not stopped since the WebClientPrint product release and this time they are working on porting our first-class Barcode Professional product to the new Windows 8 WinRT API.

Neodynamic is the only company specialized in barcode technologies which provides GS1/ISO-IEC/AIM-compliance linear (1D), postal, 2D, stacked and composite barcode symbols to .NET developers and the new Windows Store applications market will need a first-class barcode solution for sure.

Let’s say you need to create high quality QR Code to stamp it on gift cards, invoices, etc within your Windows Store app. Or maybe you need to create and print barcode labels within your Windows Store app. Or the business reports need some kind of barcode being there. For any barcode needs you might have when developing your Windows Store apps, you can safely leverage them to Neodynamic’s Barcode Professional for XAML WinRT product.

The product will be available shortly so stay tuned!

Advertisements

Barcode Professional products line for .NET Platforms Updated – new USPS IMpb support and bugs fixed for Data Matrix – QR Code

A new maintenance release for most of our Barcode Professional products for .NET platforms are now available for downloading. The new builds contain the following updates:

  • New! Added USPS Intelligent Mail Package Barcode (IMpb) new format to the UspsPicUccEan128 symbology. It does support the three primary “channels” or payment categories i.e. Commercial, Online, and Retail. The new IMpb accepts 5-digit and 9-digit codes (USPS Zip+4).
  • Fixed! A bug in the Auto encoding algorithm for Data Matrix
  • Fixed! A bug in the Auto encoding algorithm for QR Code

You can download and update the products by using their download links which can be found in the license email or in the Download section of our website.
The “Assembly Version” of the dlls have not changed but the “File Version”. Here is the list of all new “File version” attributes depending on the Barcode Professional edition:

  • Barcode Professional SDK for .NET patched to v3.0.2000.17
  • Barcode Professional for Windows Forms .NET patched to v7.0.2000.19
  • Barcode Professional for ASP.NET patched to v7.0.2000.15
  • Barcode Professional for WPF patched to v4.0.3500.17
  • Barcode Professional for Silverlight patched to v2.0.40.12
  • Barcode Professional for Reporting Services patched to v7.0.2000.16
  • Barcode Professional for Windows Phone patched to v1.0.70.1

ThermalLabel SDK 5.0 Updated – New USPS Intelligent Mail Package Barcode IMpb support, fixed a bug of MarkLength property

A new maintenance release of ThermalLabel SDK 5.0 is available containing the following:

  • Fixed! The MarkLength property of ThermalLabel object is saved with the value of GapLength property.
  • New! Added USPS Intelligent Mail Package Barcode (IMpb) new format to the UspsPicUccEan128 symbology. It does support the three primary “channels” or payment categories i.e. Commercial, Online, and Retail. The new IMpb accepts 5-digit and 9-digit codes (USPS Zip+4).

You can download and update the product by using the download link which can be found in the license email or in the Download section of our website.

The “Assembly Version” of the dlls have not changed but the “File Version”. Here is the list of the new “File version” attributes:

  • Neodynamic.SDK.ThermalLabel.dll patched to v5.0.3500.5
  • Neodynamic.Windows.ThermalLabelEditor.dll patched to v5.0.3500.5

Need to add barcodes in SQL Reporting Services 2012?

We’re proud to announce the availability of Barcode Professional 7.0 for the latest Microsoft SQL Server Reporting Services 2012! Barcode Professional for SSRS is the first third-party barcode solution supporting RS 2012 version.

Barcode Professional for RS brings you a new Barcode CRI (Custom Report Item) for supporting SQL Server Reporting Services 2012 edition which you can use within Visual Studio 2010 or the new SQL Server Data Tools 2012 (formerly Business Intelligent Development Studio a.k.a. BIDS) for adding high quality barcode images into your RDL server reports.

Barcode Professional supports most popular Linear (1D), Postal, MICR & 2D Symbologies/Standards all-in-one solution including Code 39, Code 128, GS1-128, GS1 DataBar (RSS-14), EAN 13 & UPC, Postal (USPS, British Royal Mail, Australia Post, DHL, etc.), Data Matrix, QR Code, PDF 417, Aztec Code, UPS MaxiCode, MICR E-13-B Characters, ALL EAN/UPC Composite Barcodes (CC-A, CC-B & CC-C) and many more barcode standards.

How to get it? Just download the installer from http://www.neodynamic.com/ND/Downloads.aspx?tabid=79&prodid=7

NOTE: Customers who bought Barcode Pro 7.0 for RS will get this update for free i.e. at no extra costs!!!

Draw and print barcodes on high quality images in ASP.NET

Continuing with our last post about How to merge images and barcodes in ASP.NET with VB, our team has just published a new demo code about How to draw and print QR Code barcode on high quality photos or images in ASP.NET where it takes a high quality 300 dpi photo and using C# or VB, a QR Code 2D barcode is dynamically drew onto it by using our Barcode Professional for ASP.NET product. The guide also describes how to correctly size the IMG tag of the output photo image so it can be printed at high quality resolution on the user’s local printer.

How to print barcode labels to Thermal printers from Silverlight

Silverlight 4 provides printing capabilities which allows you to print any visual element to the client’s machine installed printers. Although the printing capabilities in Silverlight 4 are somewhat limited (mainly because it only supports bitmap output printings) you can easly print barcode labels from your Silverlight app.

In this post, we’ll try to provide some guidelines about particular printers based on Thermal transfer technologies. To print barcode labels from your Silverlight app you need the following:

  • Code in your app the label design which can contain Texts, Shapes like rects, ovals, etc. and barcodes. Texts & Shapes are already available from Silverlight framework through TextBlock, Rectangle, Ellipse, Paths, etc classes. However, barcodes are not and you will need a third-party component for such task or write your own encoder. Neodynamic launched the first barcode component for Silverlight platform which fully leverages the vector engine and produce high quality barcodes for all symbologies used today like linears (Code 39, Code 128, EAN-13/UPC-A, ISBN, GS1-128 formerlly UCC-EAN/128, GS1 DataBar, etc), postals (USPS Intelligent Mail, Royal Mail Barcode, etc), 2D (Data Matrix, QR Code, Aztec Code, PDF417, MaxiCode, etc) and MICR (E-13-B)
  • You need a Thermal printer. Any printer brand (Zebra, Datamax, Sato, Intermec, Samsung-Bixolon, Toshiba TEC, Wasp, Citizen, Printronix, Avery-Dennison, CognitiveTPG, Dymo, Epson, Ithaca, Monarch, O-Neil, Primera, TSC, Unitech) can be used if the manufacturer provides you a Windows driver which must be installed on the client machine.

The following simple Silverlight app displays a “static” barcode label design and allows the user to print it to their thermal printer. The label design is static for simplicity but you can create dynamic barcode labels based on your business/dev needs.

One important thing you need to keep in mind is the physical size of your labels. You must translate it to the visual element which in this case is the Canvas class of Silvelright framework. Canvas size must be specified in DIU (device independent unit) while real labels are measure in Inches, Millimiters or Centimeters. The conversion from real units to DIU is very straightforward. In Silverlight, 1 DIU = 1/96 inch. So if your labels are 4in x 3in, then the Canvas element must be set up to 384 (Width) and 288 (Height). The code below uses this label size but you can change it if needed.

Another important thing is the Thermal printer calibration. If your printer is not correctly calibrated, then is possible that your labels be printed outisde of the available area or cut off somehow. Most printer drivers provide you an option for doing printer calibration. After calibration, the printer can automatically recognize the label size currently loaded on the media roll and your printings from Silverlight will be fine.

This is the screenshot of the “static” label on the Silverlight app sample:
Visual Studio 2010 Silverlight app for printing barcode labels to thermal printers

This is a screenshot of the Silverlight page in VS 2010 showing the barcode label design. It contains some TextBlock and Shapes objects as well as two instances of Barcode Professional for Silverlight, one for a simple Code 39 linear barcode and the other one for a 2D Data Matrix.

There’s also a Print button which allows printing the barcode label to the printer. Remember that in Silverlight, all printing job must be user-instantiated.

To reproduce this sample:

  • Download/install Barcode Professional for Silverlight
  • Open VS 2010 and create a new Silverlight 4 Application project (C#) naming it PrintingBarcodeLabelsCS NOTE: The following sample was made in C# bu can be easily translated to VB if needed.
  • Add a reference to Neodynamic.Silverlight.Barcode.dll
  • Open the MainPage.xaml file and paste the following XAML markup

    <UserControl xmlns:my="clr-namespace:Neodynamic.Silverlight;assembly=Neodynamic.Silverlight.Barcode"  x:Class="PrintingBarcodeLabelsCS.MainPage"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        d:DesignHeight="368" d:DesignWidth="508">
    
        <Grid x:Name="LayoutRoot" Background="White">
            <Grid.RowDefinitions>
                <RowDefinition Height="40*" />
                <RowDefinition Height="260*" />
            </Grid.RowDefinitions>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="Printing Barcode Labels" FontSize="16" FontWeight="Bold" Margin="10"></TextBlock>
                <Button Name="btnPrint" Height="30" Width="50" Click="btnPrint_Click">Print</Button>
            </StackPanel>
            <Border Grid.Row="1" BorderBrush="Gray" BorderThickness="2" Background="Silver">
                <Canvas Name="myLabel" Width="384" Height="288" Background="White">
                    <my:BarcodeProfessional Canvas.Left="17" Canvas.Top="60" />
                    <my:BarcodeProfessional Symbology="DataMatrix" Code="A 2D barcode here" Canvas.Left="257" Canvas.Top="184" />
                    <TextBlock Canvas.Left="17" Canvas.Top="16" Height="23" Name="textBlock1" Text="This is a sample text" FontSize="14" FontWeight="Bold" />
                    <TextBlock Canvas.Left="17" Canvas.Top="133" Height="23" Name="textBlock2" Text="More text here and some shapes below" />
                    <Rectangle Canvas.Left="17" Canvas.Top="162" Height="49" Name="rectangle1" Stroke="Black" StrokeThickness="1" Width="113" />
                    <Ellipse Canvas.Left="97" Canvas.Top="178" Height="78" Name="ellipse1" Stroke="Black" StrokeThickness="1" Width="133" />
                </Canvas>
            </Border>
        </Grid>
    </UserControl>
    

  • Open the MainPage.xaml.cs file and paste the following code

    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Shapes;
    using System.Windows.Printing;
    
    namespace PrintingBarcodeLabelsCS
    {
        public partial class MainPage : UserControl
        {
            public MainPage()
            {
                InitializeComponent();
            }
    
            PrintDocument pd;
            private void btnPrint_Click(object sender, RoutedEventArgs e)
            {
                pd = new PrintDocument();            
                pd.PrintPage += new EventHandler<PrintPageEventArgs>(pd_PrintPage);
                pd.Print("BarcodeLabel");
            }
    
            void pd_PrintPage(object sender, PrintPageEventArgs e)
            {
                e.PageVisual = myLabel;
            }
        }
    }
    

We tested it with a Zebra thermal printer and the output printing was the following label.
A barcode label printed from Silverlight to a Zebra thermal printer

If you had any question just contact our tech support

GS1 Data Matrix, MICR E-13-B and EAN.UCC Composite added to Barcode Professional product lines

We are finishing the launch of our Barcode Professional product lines in all platforms (ASP.NET, Windows Forms, Reporting Services, WPF & Silverlight). This time, these major releases added support for GS1 Data Matrix, MICR E-13-B, all the EAN.UCC Composite family as well as some enhancements to QR Code, Aztec Code & Data Matrix which now support ECI (Extended Channel Interpretation) & FNC1

With these new versions, our Barcode Professional is one of the most complete packages out there supporting all Linear, Postal, MICR and 2D barcode standards.

Regarding the new symbologies, one that was interested to design and develop was MICR E-13-B (Magnetic Ink Character Recognition). In fact, this “barcode” is not made of bars but are specially designed characters and symbols intended to be used in financial markets and the like.

You will see that most MICR E-13-B offers from competitors are just font files (TrueType TTF, Open Type, etc) a.k.a. fontware products. And this could sound logic based on the fact that MICR E-13-B is mainly a set characters and symbols. However, we went for another approach and the MICR E-13-B solution you will find in our Barcode Professional product is ALL rendered/drew by using .NET Drawing classes!!!

Why did Neodynamic choose drawing each character/symbol with .NET Drawing classes and not just pick up a font for it?

The answer is because we know about the .NET dev needs our customers face every day. The barcode font file approach has the following cons:

  • Fonts require registration in the Windows Fonts folder. You need to consider this when deploying your app. In addition, users can delete the font and break your app functionality.
  • Fonts do not scale well
  • Fonts do not support rotation

Sincerely, write the routines for drawing EACH character/symbol of MICR E-13-B was a big task using .NET System.Drawing (GDI+) for Windows Forms & ASP.NET editions of Barcode Professional, and not to mention for WPF & Silverlight where they are rendered using geometries available in those vector-based platforms. Anyway, we’re very happy with the end result and hope it helps you with your dev needs.

To conclude, here is the list of new additions for all Barcode Professional editions:

  • New! Barcode Symbologies added:
    • GS1 DataMatrix (You can now use Data Matrix for encoding GS1 GTINs and any other number of Application Identifiers (AI))
    • MICR E-13-B (It’s not a font! All characters are generated using .NET drawing engine)
    • ALL EAN.UCC Composite Barcodes:
      • EAN-13 with CC-A/CC-B
      • EAN-8 with CC-A/CC-B
      • UPC-A with CC-A/CC-B
      • UPC-E with CC-A/CC-B
      • GS1 128 (UCC/EAN-128) with CC-A/CC-B/CC-C
      • GS1 DataBar Omnidirectional (RSS14) with CC-A/CCB
      • GS1 DataBar Truncated (RSS14 Truncated) with CC-A/CCB
      • GS1 DataBar Stacked (RSS14 Stacked) with CC-A/CCB
      • GS1 DataBar Stacked Omnidirectional (RSS14 Stacked Omnidirectional) with CC-A/CCB
      • GS1 DataBar Limited (RSS Limited) with CC-A/CCB
      • GS1 DataBar Expanded (RSS Expanded) with CC-A/CCB
      • GS1 DataBar Expanded Stacked (RSS Expanded Stacked) with CC-A/CCB
    • USPS Intelligent Mail Container Barcode
    • Australia Post Domestic eParcel Barcode
    • Kodak Patch Code
  • Improved! Data Matrix:
    • Fixed some bugs when using Auto encoding, ECI (Extended Channel Interpretation) and Structured Append features.
    • Added three new properties for Structured Append feature.
  • Improved! QR Code:
    • Added support for FNC1. You can now use QR Code for encoding GS1 GTINs and any other number of Application Identifiers (AI)
    • Added support for ECI (Extended Channel Interpretation)
    • Added new way for encoding data using tilde char. This allows you to easily specify byte values in dec/hex notations as well as Kanji double byte chars, ECI and FNC1.
  • Improved! Aztec Code:
    • Added support for FNC1. You can now use Aztec Code for encoding GS1 GTINs and any other number of Application Identifiers (AI)
    • Added support for ECI (Extended Channel Interpretation)
    • Added new way for encoding data using tilde char. This allows you to easily specify byte values in dec/hex notations, ECI as well as FNC1.
  • Improved! UPC-A and UPC-E:
    • Now you can specify 6-digits for UPC-E codes that will also be automatically converted back to UPC-A when using that barcode symbology.
  • New!
    BarcodeUtils class offering different methods for calculating most popular Checksum/Check-digit available on barcode symbologies

Available in: