ایجاد و نمایش تصویر بارکد در WPF

یک بارکد حاوی اطلاعاتی در مورد یک محصول یا یک شرکت است که به صورت بصری به شکلی قابل خواندن توسط ماشین نمایش داده می شود. بارکدها به طور گسترده برای ردیابی محموله ها و مدیریت موجودی استفاده می شوند. ما به راحتی می توانیم انواع بارکد را در برنامه های WPF تولید کنیم. در این مقاله با نحوه تولید و نمایش تصویر بارکد در اپلیکیشن WPF آشنا می شویم. پس از انجام مراحل ذکر شده، ما بارکد WPF خود را در سی شارپ خواهیم داشت. پس بیایید شروع کنیم.

مقاله باید موضوعات زیر را پوشش دهد:

  1. ویژگی های WPF بارکد Generator
  2. API Generator Barcode C#
  3. مراحل ایجاد بارکد WPF
  4. ایجاد بارکد با گزینه‌های اضافی
  5. نمونه مولد بارکد WPF
  6. دانلود کد منبع

ویژگی های WPF بارکد مولد

مولد بارکد WPF ما ویژگی های زیر را خواهد داشت.

  1. انواع نمادهای بارکد زیر را ایجاد کنید:
    • کد 128
    • کد 11
    • کد39
    • QR
    • Datamatrix
    • EAN13
    • EAN8
    • ITF14
    • PDF417
  2. تصویر بارکد تولید شده را در قالب های زیر ذخیره کنید:
  3. پیش نمایش تصویر بارکد تولید شده

C# API Generator Barcode

ما از Aspose.BarCode for .NET API برای تولید تصاویر بارکد و پیش نمایش آنها در برنامه WPF استفاده خواهیم کرد. این یک API غنی از ویژگی است که به شما امکان می دهد طیف گسترده ای از [انواع بارکد] را تولید، اسکن و بخوانید. علاوه بر این، امکان دستکاری ظاهر بارکدهای تولید شده مانند رنگ پس‌زمینه، رنگ نوار، زاویه چرخش، ابعاد x، کیفیت تصویر، وضوح، شرح‌ها، اندازه و موارد دیگر را فراهم می‌کند.

مراحل ایجاد بارکد WPF

با دنبال کردن مراحل زیر می‌توانیم یک تصویر بارکد در برنامه WPF تولید و نمایش دهیم:

  • ابتدا یک پروژه جدید ایجاد کنید و الگوی پروژه WPF Application را انتخاب کنید.
Select the project template.

Select the project template.

  • بعد، نام پروژه را وارد کنید، به عنوان مثال “BarcodeGen”.

  • سپس، فریم ورک دات نت را انتخاب کرده و سپس ایجاد را انتخاب کنید.

  • سپس، NuGet Package Manager را باز کنید و بسته Aspose.BarCode for .NET را نصب کنید.

Aspose.BarCode را برای دات نت نصب کنید

Aspose.BarCode را برای دات نت نصب کنید

  • سپس، یک کلاس جدید 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 را اضافه کنید تا عملیات کلیک برای دکمه Generate Barcode انجام شود.
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;
}

می‌توانید درباره ویژگی‌های نسل برای انواع بارکد در مستندات بیشتر بخوانید.

دمو مولد بارکد WPF

در زیر نمایش برنامه WPF Barcode Generator است که ما به تازگی ایجاد کرده ایم.

دمو مولد بارکد WPF

دمو مولد بارکد WPF

کد منبع را دانلود کنید

می توانید کد منبع کامل برنامه WPF Barcode Generator را از GitHub دانلود کنید.

مجوز رایگان دریافت کنید

می‌توانید [یک مجوز موقت رایگان] دریافت کنید12 تا کتابخانه را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله نحوه تولید انواع بارکد در برنامه WPF را یاد گرفتیم. ما همچنین نحوه پیش نمایش تصویر بارکد تولید شده را به صورت برنامه ای دیده ایم. علاوه بر این، می‌توانید با استفاده از مستندات درباره Aspose.BarCode for .NET API اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهام، لطفاً با ما در [تالار گفتمان14 تماس بگیرید.

همچنین ببینید