Barcode Bakery Blog

Detailed Barcode Tutorials

Category: Technical

Technical help on Barcode Generator

Encoding Special Characters

In many cases, our users may need to insert special characters like carriage returns and functions into their barcodes. Each symbology’s ISO standards dictate which characters can be encoded into a barcode and these characters are outlined on our website under each symbology’s respective user manual page. For a step-by-step guide to choosing the correct type of barcode for your project, have a look at our previous post, Choosing the Right Barcode.


How to Insert Special Characters with ASCII Codes


Many special characters can be encoded using Barcode Bakery simply by using PHP’s chr function. The decimal code associated with each special character can be located using an ASCII table and then passed to the function. For example, to insert a carriage return, you’ll want to use chr(13) as follows:

$code->parse(“hello” . chr(13) . “new line”);


This use of the carriage return is useful when a barcode will be scanned to populate a single-input multi-line form such as a text area. If a tab character is required, such as when a barcode will be scanned to populate a form with multiple text inputs, then chr(9) would be used.


How to Insert FNC1 with setTilde()


For certain symbologies such as DataMatrix that allow the FNC1 character, the setTilde() method should be used. By setting its value to true, the tilde character can then be used to insert FNC1 by inserting ~F  into a string. This character is used in most cases to enter a different mode specific to each barcode type.


To find more information about which barcode symbologies can accommodate the special characters you require, check out our user guides in the resources found on our website:

Updated Graphical Interface

Barcode Generator implemented a new interface which has been available to customers of it’s 1D barcode software. More recently, this graphical interface has been released for 2D barcode systems as well. This new feature will be available to customers who purchase the latest version of a 2D Barcode Generator.

Here is an example of the QRCode graphical interface:

QRCode Example


Adjusting the Height of a PDF417 Barcode

The latest edition of Barcode Generator includes functionality that will allow you to create PDF417 barcodes of different module heights. The documentation states that the row height should be 3 times bigger than the X-dimension (module width). However, some barcode readers can support reading smaller row heights. The larger of the two is the default and the suggested height, but it is possible to condense it if you so desire.

In order to do this, you will need to use the method setScaleY(1) within the BCGpdf417 class.

Recommended Size for PDF417 Barcodes

Recommended Size for PDF417 Barcodes

Condensed Size for PDF417 Barcodes

Condensed Size for PDF417 Barcodes

Scale vs DPI


Scale is the unit used when displaying an image on a computer screen, mobile phone, etc.

When setting the scale to 1, it represents the smallest unit that can be displayed on the screen. In 1D barcodes, this means each vertical black bar will be represented by a one pixel wide line. If you set a scale of 2, the vertical bar will be represented by a two pixel wide line, and so on.

This is the same concept for 2D barcodes: a black bit will be 1×1 pixels for scale of 1, and 2×2 pixels for scale of 2.

As you can see, it is not possible to choose a scale between 1 and 2 since a barcode cannot be written using 1.5 pixel sizes.

The size of the barcode itself will depend on the resolution and screen size of your user. For a same monitor size, if you compare a screen resolution of 1600×1200 and 800×600, the barcode will appear smaller to the eye on the first screen than the second.

This property can be set with the method “setScale(2)” from any barcodes.

As shown below, a larger scale will increase the size of the image displayed.

Scale 2 - DPI 72

Scale 2 – DPI 72

Scale 3 - DPI 72

Scale 3 – DPI 72

DPI (dot per inch)

This unit of scaling is for printing. This will tell your image how many “dots” (pixels) will be printed within one inch on paper. The default value is 72. The value usually used for printing is 300.

If you take two images with the same scaling (the images look exactly the same on the screen) but with a DPI of 72 and a DPI of 300, the first image will appear larger than the second one on paper. However, if your printer supports 300 DPI correctly, the second image will have a better quality than the first one.

This property can be set on the BCGDrawing object with “setDPI(300)”.

Two images of the same scale and different DPI’s will be displayed the same way on a screen:

Scale 3 - DPI 72

Scale 3 – DPI 72

Scale 3 - DPI 300

Scale 3 – DPI 300


If you plan to print your barcode, you must consider the setDPI() method. If you only display the image on the screen, then you would never need to use setDPI() and only the setScale() method.

If you want to have a bigger image than scale 1 but smaller than scale 2, you would need to resize the image with resampling. Doing so will introduce anti-aliasing in your image and possibly problems to read the barcode. Introducing anti-aliasing into an image means one bar for a 1D barcode will not be as clear as 1 pixel; it may be 1 pixel black, and 1 pixel gray.

If you still want to resize your barcode, you can use the method imagecopyresampled() from PHP by getting the image resource from the BCGDrawing with the method get_im().

Choosing the Right Barcode

1dor2dIn this first blog post, you will learn how to choose the right barcode. There are multiple available and some may suit more your needs than others. Gather your requirements and start reading.

Selling an item?

This is an easy first question to consider: are you selling this item? If no, skip this part. Yes? then you may want to consider the barcodes that are used in commercial fields such as:

  • UPC-A, UPC-E
  • EAN-13
  • Databar Expanded (coupon)

Data to Encode

One of the first requirements you should gather is the type of data you will encode in the barcode. Do you want to encode numbers, letters, or special characters? Not all barcode standards support the full ASCII. Make sure to read the manual of each of format to see which barcode will be able to support your data.


A particular size of barcode may be necessary for your needs. Different types of barcodes vary in size and shape. Some standards also allow for more size constraints to be added. Each standard allows a sample demonstration which should be used to test the size and shape of images you are trying to create.

Error Correction

Error correction within barcodes is very useful when you aren’t sure of the printer quality of the person printing the barcode or if you feel that your barcode may be slightly damaged (due to rips or tears in paper, fading from sunlight, etc.). Error correction can compensate for minor flaws in barcode printing or when a part of the barcode is covered when scanned.

1D or 2D

1D barcodes are much simpler than 2D barcodes. 2D barcodes generally allow for error correction and a much wider range of character use. 1D barcodes are great for coupon codes or small amounts of information and 2D barcodes are great for links, large amounts of data, and mobile tagging.


Following this guide should help you to select the most efficient barcode for your needs.



© 2024 Barcode Bakery Blog

Theme by Anders NorenUp ↑