C# PDF-417 Generator Library SDK
Integration & Developer Guide for PDF-417 2D barcode image generation in C#
Download .NET Barcode Generator Free Evaluation
Purchase .NET Barcode Generator Suite License
"This .NET suite helps my team a lot, a bunch of time being saved. OnBarcode support is awesome, and we couldn't ask more than this."
- Bill Twain, Canada

Generate 2d barcode PDF-417 images in Visual C# .NET with complete sample C# source code

  • Generate, create PDF-417 in Visual C# .NET applications
  • Easy to install & integrate barcode PDF-417 generation library SDK into C# developments
  • Generate over 30 linear, 2d barcode images in C#.NET including C# QR Code, C# Data Matrix, C# Codabar, C# Code 39, C# Code 128, C# EAN, C# UPC
  • Generate PDF-417 images in C# class library
  • Create barcode PDF-417 in C# ASP.NET web application
  • Print PDF-417 barcode in C# Windows Form project
  • Draw PDF-417in SQL Server Reporting Services (SSRS) & Crystal Reports for .NET projects
  • Easy to encode PDF-417 images to jpeg, gif, png, tiff, bitmap files in C# program

C# PDF-417 Generator Introduction
Top
PDF-417, also known as Portable Data File 417, PDF 417, PDF417 Truncated, is a stacked linear barcode symbol format used in a variety of applications.
C# PDF-417 Generator is one of the functions in OnBarcode's Barcode for .NET Generation Controls, which supports generating & printing PDF-417 and 20+ other linear & 2D bar codes for C# applications.
OnBarcode C# Barcode Generator makes it easy to generate, create PDF-417 and other linear & 2d barcodes in Microsoft Word. Here are some detailed tutorials for C# PDF-417 generation and data encoding, size & image setting.

PDF-417 Generator library, SDK & application

OnBarcode provides several PDF-417 Generator components and software, including .NET PDF-417, Java PDF-417, VB.NET PDF-417, ASP.NET PDF-417, Android PDF-417, PDF-417 Generator.
This document is providing a detailed C# source code about generating PDF-417 barcodes in C# class using C# Barcode generation component. Complete PDF-417 custmoization settings is included in C# PDF-417 generation guide.
Create PDF-417 Barcodes in C#
Top

Creating PDF-417 barcode in C# class example:

   using System;
using System.Collections.Generic;
using System.Text;
using OnBarcode.Barcode;
using System.Drawing.Imaging;
using System.Drawing;


PDF417 pdf417 = new PDF417();

// Barcode data to encode
pdf417.Data = "OnBarcode";
// PDF-417 data mode
pdf417.DataMode = PDF417DataMode.Text;
// PDF-417 rows & columns
pdf417.RowCount = 5;
pdf417.ColumnCount = 5;

/*
* Barcode Image Related Settings
*/
// Unit of meature for all size related setting in the library.
pdf417.UOM = UnitOfMeasure.PIXEL;
// Bar module width (X), default is 3 pixel;
pdf417.X = 2;
// Bar module width vs height
pdf417.XtoYRatio = 0.3333333f;
// Barcode image left, right, top, bottom margins. Defaults are 0.
pdf417.LeftMargin = 0;
pdf417.RightMargin = 0;
pdf417.TopMargin = 0;
pdf417.BottomMargin = 0;
// Image resolution in dpi, default is 72 dpi.
pdf417.Resolution = 72;
// Created barcode orientation.
//4 options are: facing left, facing right, facing bottom, and facing top

pdf417.Rotate = Rotate.Rotate0;

// Generate PDF-417 and encode barcode to gif format
pdf417.ImageFormat = System.Drawing.Imaging.ImageFormat.Gif;
pdf417.drawBarcode("C:\\pdf417.gif");

/*
You can also call other drawing methods to generate barcodes

public void drawBarcode(Graphics graphics);

public void drawBarcode(string filename);

public Bitmap drawBarcode();

public void drawBarcode(Stream stream);

*/


PDF417 valid encoding data sets
Top
  1. All 128 characters of ASCII
  2. Extended ASCII. Values 128-255 in accordance with ISO 8859-1.


How to encode, generate PDF417 barcode with non-printable chars using c#?
Top
            PDF417 barcode = new PDF417();

            // Encode non-printable character '[CR]' between 'a' and 'b'.
            barcode.Data = "a~013bc";
            barcode.ProcessTilde = true;

            barcode.DataMode = PDF417DataMode.Auto;

            // Barcode Size Related Settings
            barcode.UOM = UnitOfMeasure.PIXEL;
            barcode.X = 4;              //  Module Width 4 pixels
            barcode.XtoYRatio = 0.4F;   //  Module Height 10 pixels

            barcode.ColumnCount = 5;    //  5 data columns per row
            barcode.RowCount = 12;      //  12 rows

            barcode.LeftMargin = 50;
            barcode.RightMargin = 50;
            barcode.TopMargin = 50;
            barcode.BottomMargin = 50;
            barcode.Resolution = 96;

            // Image format setting
            barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;

            barcode.drawBarcode("C://Projects//Test-Output//OnBarcode.com//csharp-pdf417-non-print.png");


How to encode, generate byte array data in PDF417 barcode using c#?
Top
            PDF417 barcode = new PDF417();

            //  Byte mode is used to encode any 8-bit byte data.
            //  Each byte should be represented in format "~ddd", which "ddd" is a decimal number between 0 to 255.
            //  ProcessTilde must be enable to support this feature.
            barcode.Data = "~000~001~003~253~254~255";
            barcode.ProcessTilde = true;

            barcode.DataMode = PDF417DataMode.Byte;

            // Barcode Size Related Settings
            barcode.UOM = UnitOfMeasure.PIXEL;
            barcode.X = 4;              //  Module Width 4 pixels
            barcode.XtoYRatio = 0.4F;   //  Module Height 10 pixels

            barcode.ColumnCount = 5;    //  5 data columns per row
            barcode.RowCount = 12;      //  12 rows

            barcode.LeftMargin = 50;
            barcode.RightMargin = 50;
            barcode.TopMargin = 50;
            barcode.BottomMargin = 50;
            barcode.Resolution = 96;

            // Image format setting
            barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;

            barcode.drawBarcode("C://Projects//Test-Output//OnBarcode.com//csharp-pdf417-byte-array.png");


How to encode, create non-English text in PDF417 barcode using c#?
Top
            PDF417 barcode = new PDF417();

            //  It may encode any Unicode characters after converting them to bytes in UTF-8 encode.
            //  And then, use Byte mode to encode these byte data.
            String message = "早上好";
            byte[] bytes = Encoding.UTF8.GetBytes(message);
            StringBuilder sb = new StringBuilder();
            foreach (byte b in bytes)
                sb.Append("~" + b.ToString().PadLeft(3, '0'));
            barcode.Data = sb.ToString();
            barcode.ProcessTilde = true;

            barcode.DataMode = PDF417DataMode.Byte;

            // Barcode Size Related Settings
            barcode.UOM = UnitOfMeasure.PIXEL;
            barcode.X = 4;              //  Module Width 4 pixels
            barcode.XtoYRatio = 0.4F;   //  Module Height 10 pixels

            barcode.ColumnCount = 5;    //  5 data columns per row
            barcode.RowCount = 12;      //  12 rows

            barcode.LeftMargin = 50;
            barcode.RightMargin = 50;
            barcode.TopMargin = 50;
            barcode.BottomMargin = 50;
            barcode.Resolution = 96;

            // Image format setting
            barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;

            barcode.drawBarcode("W://Projects//Test-Output//OnBarcode.com//csharp-pdf417-non-en-text.png");


How to create Macro PDF417 barcodes using C#
Top
Macro PDF417 provides a mechanism for the data in a file to be split into blocks and be represented in more than one PDF417 symbol. This mechanism is similar to the Structured Append feature in other symbologies.

Each Macro PDF417 symbol shall contain additional control information to enable the original data file to be properly reconstructed, irrespective of the sequence in which the individual PDF417 symbols are scanned and decoded.

Up to 99 999 individual PDF417 symbols may be used to encode data in Macro PDF417.

            PDF417 barcode = new PDF417();

            barcode.Data = "MacroPDF";

            barcode.DataMode = PDF417DataMode.Auto;

            //  Macro PDF417 provides a mechanism to split a large data file into segaments and one PDF417 symbol for each segament.
            //  Enable Macro PDF417 feature and set additional properties.
            barcode.Macro = true;
            barcode.MacroFileIndex = 3;         //  File ID is 3. 
            barcode.MacroSegmentCount = 10;     //  Total 10 segements for the file.
            barcode.MacroSegmentIndex = 2;      //  This symbol is Segment 2. The first Segment Index is 0

            // Barcode Size Related Settings
            barcode.UOM = UnitOfMeasure.PIXEL;
            barcode.X = 4;              //  Module Width 4 pixels
            barcode.XtoYRatio = 0.4F;   //  Module Height 10 pixels

            barcode.ColumnCount = 5;    //  5 data columns per row
            barcode.RowCount = 12;      //  12 rows

            barcode.LeftMargin = 50;
            barcode.RightMargin = 50;
            barcode.TopMargin = 50;
            barcode.BottomMargin = 50;
            barcode.Resolution = 96;

            // Image format setting
            barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;

            barcode.drawBarcode("W://Projects//Test-Output//OnBarcode.com//csharp-pdf417-macro.png");


PDF-417 Error detection and correction
Top
Each PDF417 symbol contains at least two error correction codewords. The Error Correction codewords provide capability for both error detection and correction.

The error correction level for a PDF417 symbol is selectable at the time of symbol creation. The barcode software provides property "ECL". The following table shows the number of error correction codewords for each error correction level.

Error Correction Level Total Number of Error Correction Codewords
0 2
1 4
2 8
3 16
4 32
5 64
6 128
7 256
8 512
PDF-417 Barcode Property Settings
Top
Category Properties Value Comments
Basic Property: Data
URL: DATA
Type: string
Default: "PDF417"
Barcode value to encode.

PDF-417 Valid Data Char Set:
  • Text Compaction mode permits all printable ASCII characters to be encoded, i.e. values 32 - 126 inclusive in accordance with ISO/IEC 646 (IRV), as well as selected control characters.
  • Byte Compaction mode permits all 256 possible 8-bit byte values to be encoded. This includes all ASCII characters value 0 to 127 inclusive and provides for international character set support.
  • Numeric Compaction mode permits efficient encoding of numeric data strings.
  • Up to 811,800 different character sets or data interpretations.
  • Various function codewords for control purposes.

 
PDF 417
Special
Property: ProcessTilde
URL: PROCESS-TILDE
Type: bool
Default: true
Set the ProcessTilde property to true, if you want use the tilde character "~" to specify special characters in the input data. Default is true.
  • 1-byte character: ~0dd/~1dd/~2dd (character value from 000 ~ 255); ASCII character '~' is presented by ~126
    Strings from "~256" to "~299" are unused
  • 2-byte character (Unicode): ~6ddddd (character value from 00000 ~ 65535)
    Strings from "~665536" to "~699999" are unused
  • Programming for reader initialisation: ~rp.
    This should be located at the beginning of the encoding data, e.g. data = "~rpABCD1234".
  • ECI: ~7dddddd (valid value of dddddd from 000000 to 999999)
Property: DataMode
URL: DATA-MODE
Type: PDF417DataMode
Default: PDF417DataMode.Text (1)
valid values:

  • PDF417DataMode.Auto (0)
  • PDF417DataMode.Text (1)
  • PDF417DataMode.Byte (2)
  • PDF417DataMode.Numeric (3)
  • PDF417DataMode.Customer (4)
Property: ECL
URL: ECL
Type: PDF417ECL
Default: PDF417ECL.Level_2 (2)
Error correction level, values are from PDF417ECL.Level_0 to PDF417ECL.Level_8, default is PDF417ECL.Level_2.
Property: RowCount
URL: ROW-COUNT
Type: int
Default: 3
The number of rows for PDF417. The value range is from 3 to 90. The default is 3.
Property: ColumnCount
URL: COLUMN-COUNT
Type: int
Default: 5
Number of columns. The value range is from 1 to 30. The default is 5. Increase this value, if your data size is large.
Property: Truncated
URL: TRUNCATED
Type: bool
Default: false
truncated PDF417 may be used where space considerations are a primary concern and symbol damage is unlikely.
Property: Macro
URL: MACRO
Type: bool
Default: false
Set isMacro property to true, then Macro PDF417 is enabled.
Property: MacroSegmentIndex
URL: MACRO-SEGMENT-INDEX
Type: int
Default: 0
the position of current symbol in the secuence (Start with 0).
Property: MacroSegmentCount
URL: MACRO-SEGMENT-COUNT
Type: int
Default: 0
the number of total symbols which make the sequence.
Property: MacroFileIndex
URL: MACRO-FILE-INDEX
Type: int
Default: 0
be identified to the same file
 
Barcode
Size
Related
Property: AutoResize
URL: AUTO-RESIZE
Type: bool
Default: false
Auto resize the generated barcode image.
Property: BarAlignment
URL: BAR-ALIGNMENT
Type: int
Default: 1 (center)
Barcode horizontal alignment inside the image. 0: left, 1: center, 2: right.
Property: UOM
URL: UOM
Type: UnitOfMeasure
Default: PIXEL (0)
Unit of meature for all size related settings in the library.

Valid values:
  • UnitOfMeasure.PIXEL (0)
  • UnitOfMeasure.CM (1)
  • UnitOfMeasure.INCH (2)
Property: X
URL: X
Type: float
Default: 2
Barcode bar module width, default is 3 pixel.
Property: XtoYRatio
URL: X-Y-RATIO
Type: float
Default: 0.3333333f
Bar width vs bar height ratio
Property: BarcodeWidth
URL: BARCODE-WIDTH
Type: float
Default: 0
Barcode image width.

If BarcodeWidth setting is smaller than the barcode required minimum width, the library will automatically reset to barcode minimum width.
Property: BarcodeHeight
URL: BARCODE-HEIGHT
Type: float
Default: 0
Barcode image height.

If BarcodeHeight setting is smaller than the barcode required minimum height, the library will automatically reset to barcode minimum height.
Property: LeftMargin
URL: LEFT-MARGIN
Type: float
Default: 0
Barcode image left margin size.
Property: RightMargin
URL: RIGHT-MARGIN
Type: float
Default: 0
Barcode image right margin size.
Property: TopMargin
URL: TOP-MARGIN
Type: float
Default: 0
Barcode image top margin size.
Property: BottomMargin
URL: BOTTOM-MARGIN
Type: float
Default: 0
Barcode image bottom margin size.
Property: Resolution
URL: RESOLUTION
Type: int
Default: 72
Barcode image resolution in DPI (Dots per inch).
Property: Rotate
URL: ROTATE
Type: Rotate
Default: Rotate.Rotate0 (0)
Valid values:

  • Rotate.Rotate0 (0)
  • Rotate.Rotate90 (1)
  • Rotate.Rotate180 (2)
  • Rotate.Rotate270 (3)
 
Barcode
Colors
Property: BackColor
URL: BACK-COLOR
Type: Color
Default: white
Barcode image background color.
Property: ForeColor
URL: FORE-COLOR
Type: Color
Default: black
Barcode image foreground color.
 
In WebStream query string, please use int value for Enums, "true" and "false" for bool.
More C# Barcode Generation Tutorials for Each Barcode
Top

Barcode Control for C#.NET - Bar Code Type Generation

OnBarcode is a market-leading provider of barcode imaging generator, reader controls and components for ASP.NET, Windows Forms, WPF, as well Java, Android, iOS (iPhone, iPad) across all major enterprise development platforms. We provides comprehensive tutorials and how-tos for various linear, 2d barcode information, such as C# in ASP.NET, C# .NET, C# Barcode Encoding, C# Barcode Image, VB.NET in ASP.NET, VB.NET Winforms, VB.NET Barcode Encoding, Paint QR Bar Code in Java, Print QR Code in Software. OnBarcode barcode products are supported by RasterEdge ASP.NET Document Viewer, which supports ASP.NET PDF Viewer, ASP.NET MVC Document Viewer, ASP.NET PDF Editor, MVC PDF Viewer. And provide high quality C# Convert PDF to Tiff, C# Convert PDF to Word, C# Convert PDF to HTML, C# Convert PDF to Jpeg images, and their easy and simple documents, like C# PDF SDK, C# extract text from PDF, C# Compress PDF, Print PDF in C# and C# extract image from PDF.
Terms of Use | Privacy Policy
Copyright © OnBarcode.com . All rights reserved.