Softmatic BarcodeFactory V5 - Bulk Barcode Generator

Softmatic BarcodeFactory V5 bulk creates standards-compliant barcodes in seconds. Import tabular data from text files, spreadsheets or over the clipboard or use the built-in generator to create serialized barcodes. Using all cores of your Apple Silicon or Intel CPU, the app will on average create a thousand barcodes in PDF format in under a second.

Softmatic BarcodeFactory V5 supports over 20 different symbologies and creates all common linear and 2D barcodes for retail, warehousing, logistics, pharma and transport. Automatic data formatting, check digit calculation and build in safe-guards guarantee high quality barcodes.

The created barcodes have no external dependencies. Create print-ready barcodes as CMYK TIFF or PDF for import into your designs, for box and package design, book and magazine covers or periodicals. Create RGB PNG or SVGs for use on the web, in browsers or social applications, events or for mass mailings. This app is very easy to use and will prevent you from creating invalid codes. Nevertheless, we recommended that you invest a few minutes to make yourself familiar with the software.

Should you encounter problems or have further questions regarding the creation and use of bar codes, please contact us.

System requirements:

macOS 10.15 ("Catalina") or higher. Softmatic BarcodeFactory V5 is a Universal app and will run on Macs with Intel CPU and Macs with Apple Silicon.

Supported code types:
  • Retail barcodes:

    EAN 8, EAN 13, EAN 13 w/ Add On, ISBN 10 / 13 w/ Add On, ISSN w/ Add On, UPC-A w/ Add On, UPC-E

  • Linear barcodes:

    Code 2/5 Interleaved (IL), 2/5 Industrial, ITF-14, Code 39, PZN, Code 128, Code 128 GS1, Codabar

  • 2D matrix codes:

    PDF417, Datamatrix, Datamatrix GS1, Aztec, QR ("cellphone barcode")

Note: EAN 13 is referred to by many other names, e.g. JAN, EAN 99, EAN Velocity, etc.. All those codes are ordinary EAN 13.


Bulk Barcode Generator A dedicated installation is not required. After downloading the app from the App Store, simply launch it by clicking the icon (pictured left).

Basic vs Pro mode

After downloading, the app runs in Basic mode. In Basic mode, the export is restricted to raster images with lower resolution. Supported code types in Basic mode are EAN, ISBN, UPC and other retail codes. Many more barcode symbologies and higher resolution exports as well as exports in vector formats are available when in Pro mode.

The Pro features are indicated by the green badge, shown here before unlocking:

Bulk Barcode Generator functions

Pro features require purchasing a license. Click the Unlock Pro button and follow the instructions on your screen. In addition, the Pro license entitles you to free premium email support with a guaranteed response time of one business day and free updates over the lifetime of the software.

For a collection of high resolution and vector barcode samples, see this archive.

Default settings

With the first launch of the software, the following settings are used:

Code type: EAN 13
Data: Four sample data records
Code size: SC2
Light margin indicator: Yes
Human readable text: Yes
Export format: PNG (300dpi, medium)
Bar width reduction: 0%
Height: 100%

In addition, four sample data records are loaded to allow for quick generation of the first few codes. The program window at launch:

Bulk Barcode Generator Sample Barcodes


Creating barcodes typically works in four steps:

1. Choose barcode type
2. Provide data to encode
3. Choose export format and options
4. Generate and save barcodes to file

Choose barcode type

Choose the desired barcode type from the list of available codes. If you choose a code type that is incompatible with the given data, an error message is displayed.

Example: Invalid data in the first record ("abc123") for EAN 13:

Bulk Barcode Generator EAN 13

After choosing the barcode type, make the necessary settings as listed in the table below. Note that the app disables settings that do not apply to the selected barcode symbology. For example, with retail codes like EAN, the text size is calculated automatically to fit the text under the code. Hence, the slider to set the font size is disabled.

EAN 87 or 8 digitsEAN size, height, no addon
EAN 1312 or 13 digitsEAN size, height, addon, indicator1
ISBN 10ISBN 10 Nr., e.g. 1-123-12345-XEAN size, height, addon, indicator1
ISBN 13ISBN 13 Nr., e.g. 978-1-123-12345-6EAN size, height, addon, indicator1
ISSNISBN Nr., e.g. 1234-5678EAN size, height, addon, indicator1, 2
UPC-A11 or 12 digitsEAN size, height, addon1
UPC-E7 or 8 digitsEAN size, height, no addonMust begin with "1" or "0"
Code 128Digits, letters, ASCII character set (max. 64 chars)Module width, -heightAutomatic selection of Code 128 sub types A, B, C. Code 128 is always created with a check digit.
Code 128 GS1Digits, letters, parenthesized application identifier (max. 64 chars)Module width, -heightAutomatic selection of Code 128 sub types A, B, C. Code 128 GS1 is always created with a check digit.

Enter your data including application identifiers, e.g. (01)1234567890. The software will automatically insert all required FNC1 symbols.
Code 2/5 InterleavedDigits 0-9 (max. 64 digits) Module width, -height, ratio, check digit
Code 2/5 IndustrialDigits 0-9 (max. 64 digits)Module width, -height, ratio, check digit
Code ITF-14Digits 0-9 (13 or 14 digits), with spacesModule width, -height, ratioProvide a complete 14-digit GTIN including the GTIN check digit. If 13 digits are given the app will calculate and append the GTIN check digit. Software can add a "bearer bar", see "Advanced settings" below. Recommended settings for module width: 1mm minimum, -height: 25mm minimum, ratio: 2.5
Code 39 / 39 ExtendedDigits, letters (max. 64 chars)Module width, -height, ratio, check digit, see "Advanced settings" belowAutomatic selection of Code 39 / Code 39 Extended
PZN 7/87 or 8 digitsModule width, -height, ratio, see "Advanced settings" belowSoftware will assemble PZN. Recommended settings: Module width: 0.25mm, -height: 8-20mm, ratio: 2.5
LaetusDigits 0-9, max. value 131070Module width, -height
CodabarDigits 0-9 (max. 64 digits)Module width, -height, ratioSpecify start / stop symbols with your data, e.g. A123456A. Available start / stop symbols are "A", "B", "C", "D"
DatamatrixUp to 2000 chars, extended ASCII setModule widthSquare modules, width = height
Datamatrix GS1Up to 2000 chars, extended ASCII setModule widthSquare modules, width = height

Enter your data including application identifiers, e.g. (01)1234567890. The software will automatically insert all required FNC1 symbols.
PDF 417Up to 2000 chars, extended ASCII setModule widthModule ratio height : width = 3 : 1
QRUp to 2000 chars, Unicode compatibleModule widthSquare modules, width = height
AztecUp to 2000 chars, extended ASCII setModule widthSquare modules, width = height

1) EAN 13, ISSN, ISBN 10, ISBN 13 and UPC-A can carry a satellite, or "add on", barcode. This add on can encode two or five digits. When importing data (see below) the addon can be specified by separating it with a colon, example:


This will put "978-1-123-12345-6" into the barcode and "90000" into the add-on.

2) To provide a variant no. for ISSN, append the two digit number to your ISSN, separated by semicolon, e.g. 1234-5678;05. If no variant is specified, "00" will be used.

Note 1: With retail barcodes, the software will always recalculate the respective check digit for the selected code. For example, when using EAN 13, it doesn't matter if you enter 12 or 13 digits. If it's 12, the software will append the check digit, if it's 13 the software will overwrite the last digit with the check digit. This behavior is by design to prevent data entry errors and to guarantee that a valid symbol is created.

Note 2: Barcodes are generated in pure black (PNG / SVG: RGB(0, 0, 0), TIFF: C0 M0 Y0 K1, PDF: K1). For acceptable color combinations with colored backgrounds, see for example here. As a rule, we advise against non-black barcodes.

Prepare Data

Number Generator

The built-in number generator produces sequential numbers, typical applications are product barcodes with serial numbers or barcodes for venue tickets.

Select Number Generator from the Data source pop-up menu. The Serial Number panel opens:

Bulk Barcode Generator Serial Numbers

Specify starting value, step (i.e. the difference between individual numbers), and the desired number of codes (max. 65536). If so desired the generator can left-pad the number with zeroes. You can also specify static text that is prepended and appended to the generated number.

With the settings above, the following sequence would be generated:


...97 more omitted...


Click "OK" to import the generated numbers:

Bulk Barcode Generator Import Numbers

The generated numbers will also be used for the filename of the generated codes, truncated to 64 characters. By double-clicking a filename you can simply edit and change the names to your liking. Same goes for the generated data.

Note: The sequence generator can generate numbers with a length of up to 18 digits. For larger numbers or mixed alphanumeric sequences, consider generating the sequences outside the app, e.g. with auto fill in Excel and then importing or pasting the generated sequences as a text file.

Import tabular data from a text file

Select Import from file from the Data source pop-up menu. A standard file dialog opens where you can pick a file. Supported are the file extensions TXT, CSV and TSV.

The software expects the data to be in the file row by row, e.g.:


With just one column in the file as above, the filenames of the generated codes will be taken from the encoded data, truncated to 64 characters.

In addition to the encoded data you may also specity the output filename and supplementary data that is placed above and under the generated code. The imported data is field-separated by a character that can be selected in the import dialog.

In this example a file with semicolon-separated records was imported; with the separator defaulting to comma, the lines are not separated properly:

Bulk Barcode Generator Import Excel

Setting the separator to semicolon parses the lines correctly:

Bulk Barcode Generator import CSV

Up to four fields can be specified. Fields can be empty except for the first one. When two or more fields are present the last one will be treated as filename. When three fields are imported the second field will be placed above the code. When four fields are imported the second field will be placed above the code, the third under the code. If the last field is empty or only one field (the actual data content) is present, the filename will be generated from the data content.

Here's how the sample data that is shown at program launch would have to look like when imported from a file:

401234567890,Pencils HB,$2.99,file_401234567890
401234567891,Pencils H,$2.99,file_401234567891

More examples:

  • Row: data,over,under,filename

    Yields: Barcode with content "data", Text "over" over the barcode, "under" below the barcode, written to file "filename".
  • Row: data,,under,filename

    Yields: Barcode with content "data", no text over the barcode, "under" below the barcode, written to file "filename".
  • Row: data,,under,

    Yields: Barcode with content "data", no text over the barcode, "under" below the barcode, written to file "data".
  • Row: data,over,under,

    Yields: Barcode with content "data", Text "over" over the barcode, "under" below the barcode, written to file "data".
The added text may include all characters from the ASCII character set plus the EUR and the GPB symbol. German umlauts are split into character pairs, e.g. "Ä" becomes "Ae":

Filenames must be specified without extension, e.g. "file", not "file.pdf".

Pasting tabular data from the clipboard

Pasting via the clipboard is a useful shortcut if you want to import data from a spreadsheet (e.g. Excel or Numbers). In the spreadsheet select the rows and columns like so and Cmd-C to copy to the clipboard: Bulk Barcode Generator Excel Product Data Then in BarcodeFactory select Data source > Import from clipboard. In the dialog, set the separator to TAB: Bulk Barcode Generator Import Spreadsheet When importing from the clipboard, the same rules apply as when importing from a file, see previous section.

Note: Only text can be pasted from the clipboard. If the clipboard contains other data (e.g. an image) a warning message will be displayed.

Manual data entry

While not very efficient for larger amounts of data, it's still possible to manually enter data. Clear the loaded records with Remove all. Then click the "+"-button to add a record to the list. Double-click an entry in the table to edit it. Click the "-"-button to remove a record.

Choose export format

Choose the desired export format from the list of available formats:
  • PNG (150 dpi, low)
  • PNG (300 dpi, medium)
  • PNG (600 dpi, good)
  • PNG (1200 dpi, high)
  • PNG (2400 dpi, ultra)
  • TIFF (300 dpi, medium)
  • TIFF (600 dpi, good)
  • TIFF (1200 dpi, high)
  • TIFF (2400 dpi, ultra)
  • SVG (scalable, Adobe Standard)
  • SVG (scalable, Web Standard)
  • PDF (scalable)
If at all possible, prefer vector over raster formats as SVG and PDF are resolution independent and will always result in the best possible output quality. The created files have no external dependencies.

For SVG, the software can either create Adobe-compatible files (72 SVG units per inch) or Web-compatible files (96 SVG units per inch).

If you plan to use the generated SVGs in Adobe Illustrator, Indesign or Photoshop, do not open the files directly. Instead use File > Place to import the codes into the current document. This will preserve the quality of the code. For data merging the created barcodes in InDesign, see this tutorial.

Other options

  • Light margin indicator: A ">" that will be put next to the code to indicate space that must be kept free of other graphical elements. EAN 13 and ISBN / ISSN only.
  • Human readable text: Creates the barcode without text line. With ISBN / ISSN, the line with the ISBN / ISSN above the barcode will also be omitted. 2D barcode are always created without text; this is by design because the encoded data is usually too much to display. You can however specify supplemental text for those symbologies as outlined above.
  • Human readable text size: Font size of text line directly under the code. Only available for non-retail codes; with retail barcodes the font size is calculated automatically to fit the text under the code.
  • Supplemental text size: Font size of supplemental text above and under the code.
  • Margin: Margin around the code. Useful to make space for supplemental text.
  • Bar width reduction: To compensate for dot gain during printing. Ask your print shop for recommendations.

    Reasonable values:
    • Offset printing: 1-2%
    • Laser printing: 1-2%
    • Thermo-, thermotransfer printing: 0%
    • Inkjet printing: Plain paper - 5%, Inkjet paper - 1-2%
    • Pad printing: up to 10%

Export barcode

Click Generate... to create and export the barcodes. The progress is indicated next to the button. As a rule, vector formats (PDF, SVG) are generated much faster (c. 50-100x) than barcodes in raster formats. With raster formats, the higher the resolution, the longer it takes. If you plan to create high resolution PNGs or TIFFs, start with a small amount of codes (less than a hundred or so) to estimate the time required. Also note that raster images can get very large: A 2400dpi TIFF will take up several MB of disk space while a PDF with the same code will be between 5-10 KB.

Advanced settings

When selecting Code 2/5 (all variants), ITF-14, Code 39, PZN or Codabar, a number of advanced settings become available:

Bulk Barcode Generator Check Digit

Code 2/5, ITF-14, Code 39, PZN, Codabar:
  • Ratio: between the width of a wide and a narrow bar. Lower values mean smaller codes but higher likeliness for misreading. Permitted 2.0-3.0, default 2.5.
  • Calculate check digit: Calculates and appends a check digit to the barcode to increase the scanning accuracy. Default: on.

    Note 1: With Code 39 the check digit can also be a letter.
    Note 2: PZN is always created without a check digit.
    Note 3: ITF-14 is always created with a check digit and the check digit is always displayed with the data.
  • Display check digit: Appends the check digit to the human readable text under the code. Default: on.
In addition, for Code ITF-14 the style of the "bearer bar" or "frame" can be specified: No frame, top & bottom bars, all around frame:

Bulk Barcode Generator ITF-14

The frame is created with a thickness of 4.83mm (0.190") as prescribed in the GS1 specifications.