Example scripts
| Chapter 25. PDF417 (2D-Barcode) |

## Example scripts

The following section shows some example scripts that can serve as starting points for further development.

### Showing human readable text

Example 25.5. Showing human readable text (`pdf417_ex3.php`)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

    <?php // content="text/plain; charset=utf-8"
    require_once ('jpgraph/pdf417/jpgraph_pdf417.php');

    $data = 'PDF-417';

    // Setup some symbolic names for barcode specification

    $columns = 8;   // Use 8 data (payload) columns
    $errlevel = 4;  // Use error level 4
    $modwidth = 2;  // Setup module width (in pixels)
    $height = 2;    // Height factor (=2)
    $showtext = false;  // Show human readable string

    // Create a new encoder and backend to generate PNG images
    try {
        $encoder = new PDF417Barcode($columns,$errlevel);
        $backend = PDF417BackendFactory::Create(BACKEND_IMAGE,$encoder);
        $backend->SetModuleWidth($modwidth);
        $backend->SetHeight($height);
        $backend->NoText(!$showtext);
        $backend->Stroke($data);
    }
    catch(JpGraphException $e) {
        echo 'PDF417 Error: '.$e->GetMessage();
    }
    ?>

Figure 25.12. Showing human readable text `(`pdf417_ex3.php`)`

### Altering colors

Example 25.6. Changing colors (`pdf417_ex4.php`)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28

    <?php // content="text/plain; charset=utf-8"
    require_once ('jpgraph/pdf417/jpgraph_pdf417.php');

    $data = 'PDF-417';

    // Setup some symbolic names for barcode specification

    $columns = 8;   // Use 8 data (payload) columns
    $errlevel = 4;  // Use error level 4
    $modwidth = 2;  // Setup module width (in pixels)
    $height = 2;    // Height factor (=2)
    $showtext = true;  // Show human readable string

    try {
        // Create a new encoder and backend to generate PNG images
        $encoder = new PDF417Barcode($columns,$errlevel);
        $backend = PDF417BackendFactory::Create(BACKEND_IMAGE,$encoder);

        $backend->SetModuleWidth($modwidth);
        $backend->SetHeight($height);
        $backend->NoText(!$showtext);
        $backend->SetColor('black','yellow');
        $backend->Stroke($data);
    }
    catch(JpGraphException $e) {
        echo 'PDF417 Error: '.$e->GetMessage();
    }
    ?>

Figure 25.13. Changing colors `(`pdf417_ex4.php`)`

### Creating postscript output

Example 25.7. (`pdf417_ex5.php`)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29

    <?php // content="text/plain; charset=utf-8"
    require_once ('jpgraph/pdf417/jpgraph_pdf417.php');

    $data = 'PDF-417';

    // Setup some symbolic names for barcode specification

    $columns = 8;   // Use 8 data (payload) columns
    $errlevel = 4;  // Use error level 4
    $modwidth = 0.8;// Setup module width (in PS points)
    $height = 3;    // Height factor (=2)
    $showtext = true;  // Show human readable string

    try {
        // Create a new encoder and backend to generate PNG images
        $encoder = new PDF417Barcode($columns,$errlevel);
        $backend = PDF417BackendFactory::Create(BACKEND_PS,$encoder);

        $backend->SetModuleWidth($modwidth);
        $backend->SetHeight($height);
        $backend->NoText(!$showtext);
        $backend->SetColor('black','yellow');
        $output = $backend->Stroke($data);
        echo nl2br(htmlspecialchars($output));
    }
    catch(JpGraphException $e) {
        echo 'PDF417 Error: '.$e->GetMessage();
    }
    ?>

### Manually selecting compaction schema

Purpose:

To show how to manually specify the compaction schema to be used for the input data. The example below shows how to manually specify when to use numeric and when to use text mode.

Example 25.8. (`pdf417_ex6.php`)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35

    <?php // content="text/plain; charset=utf-8"
    require_once ('jpgraph/pdf417/jpgraph_pdf417.php');

    $data1 = '12345';
    $data2 = 'Abcdef';
    $data3 = '6789';

    // Manually specify several encodation schema
    $data = array(
        array(USE_NC,$data1),
        array(USE_TC,$data2),
        array(USE_NC,$data3));

    //$data = "12345Abcdef6789";

    // Setup some symbolic names for barcode specification

    $columns = 8;   // Use 8 data (payload) columns
    $modwidth = 2;  // Use 2 pixel module width
    $errlevel = 2;  // Use error level 2
    $showtext = true;  // Show human readable string

    try {
        // Create a new encoder and backend to generate PNG images
        $encoder = new PDF417Barcode($columns,$errlevel);
        $backend = PDF417BackendFactory::Create(BACKEND_IMAGE,$encoder);

        $backend->SetModuleWidth($modwidth);
        $backend->NoText(!$showtext);
        $backend->Stroke($data);
    }
    catch(JpGraphException $e) {
        echo 'PDF417 Error: '.$e->GetMessage();
    }
    ?>

Figure 25.14. `(`pdf417_ex6.php`)`

| Up |
| Home |