Como gerar Micro, Compact e Macro PDF417 Barcodes .NET

Como gerar Micro, Compact e Macro PDF417 Barcodes .NET

Este artigo abrange como gerar micro PDF417, compacto pdf417 e macro PDF 417 códigos de barras em aplicações .NET usando Aspose.BarCode. Essas variantes oferecem recursos de poupança de espaço, alta capacidade e multi-segmento ideais para rotulagem, documentação e transferência de dados.

Problemas do mundo real

O código-bar padrão PDF417 pode ser muito grande para alguns produtos ou rótulos, e às vezes as informações precisam ser divididas em vários códigos de barras ou codificadas em um formato altamente compacto por razões regulamentares ou operacionais.

Solução Overview

Aspose.BarCode para .NET permite que os desenvolvedores gerem todas as variantes do PDF417 de forma programática.

  • Micro PDF417: Para rótulos muito pequenos com dados e tamanho reduzidos.
  • Compact PDF417: Otimizado para tamanho sem perda de capacidade.
  • Macro PDF417: Divide grandes dados em vários símbolos de código-bar com metadados de arquivo/segmento.

Pré-requisitos

Antes de começar, certifique-se de ter:

  • Visual Studio 2019 ou posterior
  • .NET 6.0 ou posterior (ou .Net Framework 4.6.2+)
  • Aspose.BarCode para .NET instalado através de NuGet
  • Conhecimento básico do C#
PM> Install-Package Aspose.BarCode

Implementação passo a passo

Passo 1: Instalar e importar Aspose.BarCode

using Aspose.BarCode.Generation;

Passo 2: Crie o PDF417 Variant Generator

Microfone PDF417

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

Compatível com PDF417:

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

Macro em 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; 

Passo 3: Ajuste as cordas, colunas e ECC

Customize conforme necessário:

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);

Passo 5: Exemplo completo (Todas as versões 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);
    }
}

Use Casos e Aplicações

  • Micro PDF417: Pequenas etiquetas de produto, embalagem compacta
  • Compact PDF417: Etiquete de documento, códigos de barras de cadeia de abastecimento compacto
  • Macro PDF417: Dados divididos para formulários, manifestos ou documentos regulatórios de múltiplas partes

Desafios comuns e soluções

Desejo 1: Não há capacidade de dados suficiente?Solução : Use o Macro PDF417 com segmentos para conjuntos de dados muito grandes.

Challenge 2: A saída não lida ou muito pequena?Solução : Aumentar o tamanho do módulo (pixel), ajustar linhas/colunas para espaço/dados.

**Challenge 3: reconstrução de arquivos multi-segmento?**Solução : Use o MacroFileID único e os IDs de segmento/conto correspondentes para a reassembleia adequada.

Considerações de desempenho

  • Escolha a versão PDF417 certa para o seu tamanho/espaço de aplicação
  • Batch gera códigos de barra Micro/Compact/Macro conforme necessário
  • Use os fluxos de memória para a integração com fluxo de trabalho digital

Melhores Práticas

  • Teste todos os resultados do PDF417 com scanners físicos ou validadores de conformidade
  • Use o Macro para dividir arquivos/documentos grandes
  • IDs de segmento de documentos para uso do Macro PDF417
  • Exportação de PNG em alto DPI para rótulos pequenos ou detalhados

Os cenários avançados

Batch Gerar Todas as Variações 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);
}

Conclusão

Aspose.BarCode para .NET torna fácil gerar todas as variantes do PDF417 – Micro, Compact e Macro – para embalagens, documentação, regulamentação e fluxos de trabalho digitais. Aspose.BarCode API Referência Para os detalhes.

 Português