如何创建Micro、Compact和Macro PDF417条码

如何创建Micro、Compact和Macro PDF417条码

本文涵盖如何在使用 Aspose.BarCode 在 .NET 应用程序中创建 Micro PDF417、Compact PDF317 和 Macro pdf418 条码. 这些选项提供空间节约、高容量和多部分功能,适合标签、文档和数据传输。

现实世界问题

标准 PDF417 条码对于某些产品或标签可能太大,有时信息需要分为多个条代码或编码在一个非常紧凑的格式,因为监管或运营原因。

解决方案概述

Aspose.BarCode for .NET 允许开发人员编程创建所有 PDF417 版本。

  • Micro PDF417: 对于非常小的标签,数据和尺寸较小。
  • PDF417: 可优化为尺寸,无损容量。
  • Macro PDF417: 将大数据分为多个条码符号,并将文件/分区的转数据。

原則

在你开始之前,请确保你有:

  • Visual Studio 2019 或以后
  • .NET 6.0 或更高版本(或 .Net Framework 4.6.2+)
  • Aspose.BarCode for .NET 通过 NuGet 安装
  • 关于C#的基本知识
PM> Install-Package Aspose.BarCode

步骤实施

步骤 1: 安装和进口 Aspose.BarCode

using Aspose.BarCode.Generation;

步骤2:创建 PDF417 变量发明器

微型 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; 

Macro 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 和相匹配的分区 ID / 帐户,以便进行适当的重组。

绩效考虑

  • 选择适当的 PDF417 版本为您的应用程序大小/空间
  • 根据需要,Batch 会产生 Micro/Compact/Macro 条码。
  • 使用内存流与数字工作流的集成

最佳实践

  • 使用物理扫描仪或遵守验证器测试所有 PDF417 输出
  • 使用Macro分成大文件/文件
  • 使用 Macro PDF417 的文档分区 ID
  • 出口 PNG 高 DPI 小或详细标签

先进的场景

1. Batch 生成所有 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 for .NET 使所有 PDF417 版本(Micro、Compact 和 Macro)可用于包装、文档、监管和数字工作流。 Aspose.BarCode API 参考 对于细节。

 中文