Как генерировать микро, компактные и макро PDF417 баркоды .NET

Как генерировать микро, компактные и макро PDF417 баркоды .NET

Эта статья охватывает, как генерировать микро-PDF417, компактные PDF417 и макро-ПДФ418 баркоды в приложениях .NET с помощью Aspose.BarCode. Эти варианты предлагают пространственно-сберегающие, высококачественные и многосегментные функции идеально подходят для маркировки, документации и передачи данных.

Реальные мировые проблемы

Стандартные баркоды PDF417 могут быть слишком большими для некоторых продуктов или етикетов, и иногда информация должна быть разделена на несколько бар-кодов или зашифрована в очень компактном формате по нормативным или оперативным причинам.

Решение обзор

Aspose.BarCode для .NET позволяет разработчикам генерировать все варианты PDF417 программатически.

  • Micro PDF417: Для очень небольших знаков с уменьшенными данными и размером.
  • Compact PDF417: Оптимизирован для размеров без потери мощности.
  • Macro PDF417: Разделяет большие данные по нескольким символам баркода с метаданными файла/сегмента.

Предупреждения

Прежде чем начать, убедитесь, что у вас есть:

  • Visual Studio 2019 или позднее
  • .NET 6.0 или более поздний (или .Net Framework 4.6.2+)
  • Aspose.BarCode для .NET установлен через NuGet
  • Основное знание C#
PM> Install-Package Aspose.BarCode

Step-by-Step реализация

Шаг 1: Инсталляция и импорт Aspose.BarCode

using Aspose.BarCode.Generation;

Шаг 2: Создание PDF417 Variant Generator

Микро PDF417

BarcodeGenerator microGen = new BarcodeGenerator(EncodeTypes.MicroPdf417, "Micro data");
microGen.Parameters.Barcode.XDimension.Pixels = 4; 

Комплект PDF417:

BarcodeGenerator compactGen = new BarcodeGenerator(EncodeTypes.CompactPdf417, "Compact info");
compactGen.Parameters.Barcode.XDimension.Pixels = 4; 

Макро PDF417:

BarcodeGenerator macroGen = new BarcodeGenerator(EncodeTypes.MacroPdf417, "Segmented large dataset");
macroGen.Parameters.Barcode.Pdf417.Pdf417MacroFileID = 123;
macroGen.Parameters.Barcode.Pdf417.Pdf417MacroSegmentID = 1;
macroGen.Parameters.Barcode.Pdf417.Pdf417MacroSegmentsCount = 3;
macroGen.Parameters.Barcode.XDimension.Pixels = 4; 

Шаг 3: Приспособление крыльев, колонн и ECC

Настройка по мере необходимости:

microGen.Parameters.Barcode.Pdf417.Pdf417Rows = 4;
microGen.Parameters.Barcode.Pdf417.Pdf417Columns = 2;
compactGen.Parameters.Barcode.Pdf417.Pdf417ErrorLevel = Pdf417ErrorLevel.Level2;
macroGen.Parameters.Barcode.Pdf417.Pdf417ErrorLevel = Pdf417ErrorLevel.Level4; ```

---

### Step 4: Save and Test the Barcode Output

```cs
microGen.Save("micro-pdf417.png", BarCodeImageFormat.Png);
compactGen.Save("compact-pdf417.png", BarCodeImageFormat.Png);
macroGen.Save("macro-pdf417-segment1.png", BarCodeImageFormat.Png);

Шаг 5: Полный пример (Все PDF417 варианты)

using Aspose.BarCode.Generation;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Micro PDF417
        BarcodeGenerator microGen = new BarcodeGenerator(EncodeTypes.MicroPdf417, "Micro data");
        microGen.Parameters.Barcode.XDimension.Pixels = 4;
        microGen.Parameters.Barcode.Pdf417.Pdf417Rows = 4;
        microGen.Parameters.Barcode.Pdf417.Pdf417Columns = 2;
        microGen.Save("micro-pdf417.png", BarCodeImageFormat.Png);

        // Compact PDF417
        BarcodeGenerator compactGen = new BarcodeGenerator(EncodeTypes.CompactPdf417, "Compact info");
        compactGen.Parameters.Barcode.XDimension.Pixels = 4;
        compactGen.Parameters.Barcode.Pdf417.Pdf417ErrorLevel = Pdf417ErrorLevel.Level2;
        compactGen.Save("compact-pdf417.png", BarCodeImageFormat.Png);

        // Macro PDF417 (segment 1 of 3)
        BarcodeGenerator macroGen = new BarcodeGenerator(EncodeTypes.MacroPdf417, "Segmented large dataset");
        macroGen.Parameters.Barcode.Pdf417.Pdf417MacroFileID = 123;
        macroGen.Parameters.Barcode.Pdf417.Pdf417MacroSegmentID = 1;
        macroGen.Parameters.Barcode.Pdf417.Pdf417MacroSegmentsCount = 3;
        macroGen.Parameters.Barcode.XDimension.Pixels = 4;
        macroGen.Parameters.Barcode.Pdf417.Pdf417ErrorLevel = Pdf417ErrorLevel.Level4;
        macroGen.Save("macro-pdf417-segment1.png", BarCodeImageFormat.Png);
    }
}

Используйте случаи и приложения

  • Micro PDF417: Малые товарные знаки, компактная упаковка
  • Compact PDF417: Означение документа, компактные баркоды цепочки поставок
  • Macro PDF417: Распределение данных для форм, манифестов или нормативных многочасовых документов

Общие вызовы и решения

Проблема 1: Неужели не хватает данных?Решение → Используйте Macro PDF417 с сегментами для очень больших наборов данных.

Проблема 2: Выход непрочтен или слишком маленький?Решение → Увеличение размера модуля (пикселей), настройка строк/колонов для пространства/данных.

**Проблема 3: многосегментная реконструкция файлов?**Решение → Используйте уникальный MacroFileID и соответствующие идентификаторы сегмента/счет для правильной перегрузки.

Рассмотрим производительность

  • Выберите правильный вариант PDF417 для вашего размера приложения/пространства
  • Batch генерирует микро/комплектные/макро баркоды по мере необходимости
  • Использование потоков памяти для интеграции с цифровыми рабочими потоками

Лучшие практики

  • Проверьте все выходы PDF417 с помощью физических сканеров или валидаторов соответствия
  • Используйте Macro для распределения больших файлов/документов
  • Идентификаторы сегмента документа для Macro PDF417
  • Экспорт ПНГ при высоком ДПИ для малых или детальных обозначений

Развитые сценарии

Батч генерирует все PDF417 варианты

foreach (var doc in documents)
{
    BarcodeGenerator g = new BarcodeGenerator(EncodeTypes.MacroPdf417, doc.SegmentData);
    g.Parameters.Barcode.Pdf417.Pdf417MacroFileID = doc.FileID;
    g.Parameters.Barcode.Pdf417.Pdf417MacroSegmentID = doc.SegmentID;
    g.Parameters.Barcode.Pdf417.Pdf417MacroSegmentsCount = doc.TotalSegments;
    g.Save($"macro_{doc.FileID}_segment{doc.SegmentID}.png", BarCodeImageFormat.Png);
}

Заключение

Aspose.BarCode для .NET позволяет легко генерировать все варианты PDF417 — Micro, Compact и Macro — для упаковки, документации, нормативных и цифровых рабочих потоков. Aspose.BarCode API ссылка Для деталей .

 Русский