สร้างและแสดงภาพบาร์โค้ดใน WPF

บาร์โค้ดประกอบด้วยข้อมูลเกี่ยวกับผลิตภัณฑ์หรือบริษัท ซึ่งแสดงด้วยภาพในรูปแบบที่เครื่องอ่านได้ บาร์โค้ดถูกใช้อย่างกว้างขวางเพื่อติดตามการจัดส่งและการจัดการสินค้าคงคลัง เราสามารถสร้างบาร์โค้ดประเภทต่างๆ ได้อย่างง่ายดายในแอปพลิเคชัน WPF ในบทความนี้ เราจะเรียนรู้วิธีสร้างและแสดงภาพบาร์โค้ดในแอปพลิเคชัน WPF หลังจากทำตามขั้นตอนดังกล่าวแล้ว เราก็จะมี WPF Barcode Generator ในภาษา C# เป็นของตัวเอง มาเริ่มกันเลย

บทความจะครอบคลุมหัวข้อต่อไปนี้:

  1. คุณสมบัติของเครื่องสร้างบาร์โค้ด WPF
  2. C# Barcode Generator API
  3. ขั้นตอนในการสร้างเครื่องสร้างบาร์โค้ด WPF
  4. สร้างบาร์โค้ดด้วยตัวเลือกเพิ่มเติม
  5. สาธิตเครื่องสร้างบาร์โค้ด WPF
  6. ดาวน์โหลดซอร์สโค้ด

คุณสมบัติของเครื่องสร้างบาร์โค้ด WPF

เครื่องสร้างบาร์โค้ด WPF ของเราจะมีคุณสมบัติดังต่อไปนี้

  1. สร้างสัญลักษณ์บาร์โค้ดประเภทต่อไปนี้:
    • รหัส128
    • รหัส11
    • รหัส39
    • คิวอาร์
    • ดาต้าเมทริกซ์
    • EAN13
    • EAN8
    • ไอทีเอฟ14
    • PDF417
  2. บันทึกภาพบาร์โค้ดที่สร้างขึ้นในรูปแบบต่อไปนี้:
  3. ดูตัวอย่างภาพบาร์โค้ดที่สร้างขึ้น

C# เครื่องสร้างบาร์โค้ด API

เราจะใช้ Aspose.BarCode for .NET API เพื่อสร้างภาพบาร์โค้ดและดูตัวอย่างในแอปพลิเคชัน WPF เป็น API ที่มีคุณลักษณะหลากหลายซึ่งช่วยให้คุณสร้าง สแกน และอ่าน ประเภทบาร์โค้ด ได้หลากหลาย ยิ่งไปกว่านั้น มันยังช่วยให้สามารถปรับเปลี่ยนรูปลักษณ์ของบาร์โค้ดที่สร้างขึ้นได้ เช่น สีพื้นหลัง สีของแท่ง มุมการหมุน มิติ x คุณภาพของภาพ ความละเอียด คำบรรยาย ขนาด และอื่นๆ อีกมากมาย

ขั้นตอนในการสร้างเครื่องสร้างบาร์โค้ด WPF

เราสามารถสร้างและแสดงภาพบาร์โค้ดในแอปพลิเคชัน WPF โดยทำตามขั้นตอนด้านล่าง:

  • ขั้นแรก สร้างโครงการใหม่และเลือกเทมเพลตโครงการ WPF Application
  • จากนั้นป้อนชื่อโครงการ เช่น “BarcodeGen”

  • จากนั้นเลือก .NET framework แล้วเลือกสร้าง

  • ถัดไป เปิด NuGet Package Manager และติดตั้งแพ็คเกจ Aspose.BarCode for .NET

ติดตั้ง Aspose.BarCode for .NET

ติดตั้ง Aspose.BarCode for .NET

  • จากนั้นเพิ่มคลาสใหม่ Barcode.cs เพื่อกำหนดบาร์โค้ด
public class Barcode
{
    public string? Text { get; set; }

    public BaseEncodeType? BarcodeType { get; set; }

    public BarCodeImageFormat ImageType { get; set; }
}
  • ถัดไป เปิด MainWindow.xaml และเพิ่มการควบคุมที่จำเป็นตามที่แสดงด้านล่าง:
เพิ่มการควบคุมที่จำเป็น

เพิ่มการควบคุมที่จำเป็น

คุณยังสามารถแทนที่เนื้อหาของ MainWindow.xaml ด้วยสคริปต์ต่อไปนี้

<Window x:Class="BarcodeGen.MainWindow"
        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"
        xmlns:local="clr-namespace:BarcodeGen"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">

    <Grid Width="800" Height="384">
        <Grid.RowDefinitions>
            <RowDefinition Height="191*"/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Label Content="Select Barcode Type:" HorizontalAlignment="Left" Margin="10,16,0,0" VerticalAlignment="Top" FontSize="14" FontWeight="Bold"/>
        <ComboBox x:Name="comboBarcodeType" HorizontalAlignment="Left" Margin="10,47,0,305" Width="273" Text="Select Barcode Type" IsReadOnly="True" SelectedIndex="-1" FontSize="14" Height="30">
            <ComboBoxItem Content="Code128"></ComboBoxItem>
            <ComboBoxItem Content="Code11"></ComboBoxItem>
            <ComboBoxItem Content="Code32"></ComboBoxItem>
            <ComboBoxItem Content="QR"></ComboBoxItem>
            <ComboBoxItem Content="DataMatrix"></ComboBoxItem>
            <ComboBoxItem Content="EAN13"></ComboBoxItem>
            <ComboBoxItem Content="EAN8"></ComboBoxItem>
            <ComboBoxItem Content="ITF14"></ComboBoxItem>
            <ComboBoxItem Content="PDF417"></ComboBoxItem>
        </ComboBox>

        <Button Name="btnGenerate" Click="btnGenerate_Click" Content="Generate Barcode" HorizontalAlignment="Left" Margin="10,346,0,0" VerticalAlignment="Top" Height="28" Width="273" FontSize="14" FontWeight="Bold"/>
        <Label Content="Enter Your Text:" HorizontalAlignment="Left" Margin="10,92,0,0" VerticalAlignment="Top" FontSize="14" FontWeight="Bold"/>
        <TextBox Name="tbCodeText" TextWrapping="Wrap" Margin="10,123,517,134" Width="273" Height="125"/>
        <Label Content="Select Image Format:" HorizontalAlignment="Left" Margin="10,253,0,0" VerticalAlignment="Top" FontSize="14" FontWeight="Bold"/>
        <RadioButton Name="rbPng" Content="Png" GroupName="rbImageType" Margin="10,285,739,77" Width="51" Height="20" FontSize="14" IsChecked="True"/>
        <RadioButton Name="rbJpg" Content="Jpeg" GroupName="rbImageType" Margin="121,285,628,77" Width="51" Height="20" FontSize="14"/>
        <RadioButton Name="rbBmp" Content="Bmp" GroupName="rbImageType" Margin="232,285,517,77" Width="51" Height="20" FontSize="14"/>
        <CheckBox Name="cbGenerateWithOptions" Height="20" Margin="10,321,517,41" Content="Generate with Options" />
        <GroupBox Header="View Generated Barcode" Margin="317,0,22,0" FontSize="14" FontWeight="Bold">
            <Image Name="imgDynamic" Margin="6,-6,7,6" Stretch="None"  />
        </GroupBox>
    </Grid>
</Window>
  • จากนั้น เปิดคลาส MainWindow.xaml.cs และเพิ่มเหตุการณ์ btnGenerateClick เพื่อจัดการการดำเนินการคลิกสำหรับปุ่มสร้างบาร์โค้ด
private void btnGenerate_Click(object sender, RoutedEventArgs e)
{
    // ตั้งค่าเริ่มต้นเป็น PNG
    var imageType = "Png";

    // รับรูปแบบภาพที่ผู้ใช้เลือก
    if(rbPng.IsChecked == true)
    {
        imageType = rbPng.Content.ToString();
    }
    else if(rbBmp.IsChecked == true)
    {
        imageType = rbBmp.Content.ToString();
    }
    else if(rbJpg.IsChecked == true)
    {
        imageType = rbJpg.Content.ToString();
    }

    // รับรูปแบบภาพจาก enum
    var imageFormat = (BarCodeImageFormat)Enum.Parse(typeof(BarCodeImageFormat), imageType.ToString());

    // ตั้งค่าเริ่มต้นเป็น Code128
    var encodeType = EncodeTypes.Code128;

    // รับประเภทบาร์โค้ดที่ผู้ใช้เลือก
    if (!string.IsNullOrEmpty(comboBarcodeType.Text))
    {
        switch (comboBarcodeType.Text)
        {
            case "Code128":
                encodeType = EncodeTypes.Code128;
                break;

            case "ITF14":
                encodeType = EncodeTypes.ITF14;
                break;

            case "EAN13":
                encodeType = EncodeTypes.EAN13;
                break;

            case "Datamatrix":
                encodeType = EncodeTypes.DataMatrix;
                break;

            case "Code32":
                encodeType = EncodeTypes.Code32;
                break;

            case "Code11":
                encodeType = EncodeTypes.Code11;
                break;

            case "PDF417":
                encodeType = EncodeTypes.Pdf417;
                break;

            case "EAN8":
                encodeType = EncodeTypes.EAN8;
                break;

            case "QR":
                encodeType = EncodeTypes.QR;
                break;
        }
    }

    // เริ่มต้นวัตถุบาร์โค้ด
    Barcode barcode = new Barcode();
    barcode.Text = tbCodeText.Text;
    barcode.BarcodeType = encodeType;
    barcode.ImageType = imageFormat;

    try
    {
        string imagePath = "";

        if (cbGenerateWithOptions.IsChecked == true)
        {
            // สร้างบาร์โค้ดพร้อมตัวเลือกเพิ่มเติมและรับเส้นทางรูปภาพ
            imagePath = GenerateBarcodeWithOptions(barcode);
        }
        else
        {
            // สร้างบาร์โค้ดและรับเส้นทางภาพ
            imagePath = GenerateBarcode(barcode);
        }

        // แสดงภาพ
        Uri fileUri = new Uri(Path.GetFullPath(imagePath));
        imgDynamic.Source = new BitmapImage(fileUri);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
  • หลังจากนั้นให้เพิ่มฟังก์ชันเพื่อสร้างบาร์โค้ด
private string GenerateBarcode(Barcode barcode)
{
    // เส้นทางภาพ
    string imagePath = comboBarcodeType.Text + "." + barcode.ImageType;

    // เริ่มต้นเครื่องสร้างบาร์โค้ด
    BarcodeGenerator generator = new BarcodeGenerator(barcode.BarcodeType, barcode.Text);

    // บันทึกภาพ
    generator.Save(imagePath, barcode.ImageType);

    return imagePath;
}
  • สุดท้ายให้เรียกใช้แอปพลิเคชัน

สร้างบาร์โค้ดด้วยตัวเลือกเพิ่มเติม

เรายังสามารถสร้างบาร์โค้ดด้วยตัวเลือกเพิ่มเติมสำหรับประเภทบาร์โค้ดโดยเฉพาะ ในเครื่องสร้างบาร์โค้ด WPF เราได้เพิ่มช่องทำเครื่องหมายเพื่อสร้างบาร์โค้ดพร้อมตัวเลือก จะเรียกใช้ฟังก์ชันต่อไปนี้เพื่อระบุตัวเลือกเพิ่มเติมสำหรับประเภทบาร์โค้ดต่างๆ

private string GenerateBarcodeWithOptions(Barcode barcode)
{
    // เส้นทางภาพ
    string imagePath = comboBarcodeType.Text + "." + barcode.ImageType;

    // เริ่มต้นเครื่องสร้างบาร์โค้ด
    BarcodeGenerator generator = new BarcodeGenerator(barcode.BarcodeType, barcode.Text);

    if(barcode.BarcodeType == EncodeTypes.QR)
    {
        generator.Parameters.Barcode.XDimension.Pixels = 4;
        //ตั้งเวอร์ชันอัตโนมัติ
        generator.Parameters.Barcode.QR.QrVersion = QRVersion.Auto;
        //ตั้งค่าประเภทการเข้ารหัส QR อัตโนมัติ
        generator.Parameters.Barcode.QR.QrEncodeType = QREncodeType.Auto;
    } 
    else if(barcode.BarcodeType == EncodeTypes.Pdf417)
    {
        generator.Parameters.Barcode.XDimension.Pixels = 2;
        generator.Parameters.Barcode.Pdf417.Columns = 3;
    }
    else if(barcode.BarcodeType == EncodeTypes.DataMatrix)
    {
        //ตั้งค่า DataMatrix ECC เป็น 140
        generator.Parameters.Barcode.DataMatrix.DataMatrixEcc = DataMatrixEccType.Ecc200;
    }
    else if(barcode.BarcodeType == EncodeTypes.Code32)
    {
        generator.Parameters.Barcode.XDimension.Millimeters = 1f;
    }
    else
    {
        generator.Parameters.Barcode.XDimension.Pixels = 2;
        //ตั้ง BarHeight 40
        generator.Parameters.Barcode.BarHeight.Pixels = 40;
    }

    // บันทึกภาพ
    generator.Save(imagePath, barcode.ImageType);

    return imagePath;
}

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ Generation Specifications for Barcode Types ในเอกสารประกอบ

สาธิตเครื่องสร้างบาร์โค้ด WPF

ต่อไปนี้เป็นการสาธิตแอปพลิเคชัน WPF Barcode Generator ที่เราเพิ่งสร้างขึ้น

สาธิตเครื่องสร้างบาร์โค้ด WPF

สาธิตเครื่องสร้างบาร์โค้ด WPF

ดาวน์โหลดซอร์สโค้ด

คุณสามารถดาวน์โหลดซอร์สโค้ดทั้งหมดของแอปพลิเคชัน WPF Barcode Generator ได้จาก GitHub

รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อทดลองใช้ห้องสมุดโดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีสร้างบาร์โค้ดประเภทต่างๆ ในแอปพลิเคชัน WPF เราได้เห็นวิธีดูตัวอย่างภาพบาร์โค้ดที่สร้างขึ้นโดยทางโปรแกรม นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.BarCode for .NET API โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม

ดูสิ่งนี้ด้วย