Australia Post 4-State Barcode

Australia Post Barcode in Word

Table of Contents

Requirements

We strongly suggest you to visit the Barcode Quality Program page on the Australia Post web site and read the Customer Barcode Technical Specifications document that describes requirements for dimensions, bar density and placement of barcodes.

Creating an Australia Post Barcode

Australia Post allows to produce barcodes that contain only these FCC codes without asking authorization from them:

FCC The FCC meaning No. of bars
11 Standard Customer Barcode 37
59 Customer Barcode 2 52
62 Customer Barcode 3 67

The minimum required bar width and gap size of the barcode are 0.4/0.4mm. The maximum bar width and gap size are 0.6/0.7mm. In this example, we draw all barcodes with bar/gap = 0.5/0.5mm.

So, the Standard Customer Barcode (FCC 11) must have the width of 36.5mm. If a barcode with FCC=59 is produced, the required barcode width is 51.5mm.

The barcode height is always 5mm (min/max values allowed by the Technical Specifications are 4.2/5.8mm).

The Code Example

Private Sub CommandButton1_Click() CreateAustraliaPost "1139549554", 5, 3 ' This prints a "Standard Customer Barcode" (FCC 11) End Sub ' at X=5cm,Y=3cm from the top-left corner of the barcode Private Sub CreateAustraliaPost(data As String, x As Integer, y As Integer) Dim doc As Document Set doc = Word.ActiveDocument Dim shp As Shape On Error Resume Next ' If we already have a barcode placed on the page, delete it first Set shp = doc.Shapes("auspost_barcode") shp.Delete On Error GoTo 0 Dim ss As StrokeScribeClass Set ss = CreateObject("STROKESCRIBE.StrokeScribeClass.1") ss.Alphabet = AUSPOST ss.Text = data ss.HBorderSize = 0 ' The ActiveX will not add quiet zones into the image - this simplifies the barcode density calculations ss.VBorderPercent = 0 pict_file = Environ("TEMP") & "\bar.emf" ' Because the native Office shapes do not support direct memory streaming, ' we prepare a temporary file for the barcode image Dim FCC As String ' We can determine the required image width by querying the FCC code stored in the source data FCC = Left$(data, 2) Select Case FCC Case "11", "45" ' The "Standard Customer Barcode" and "Reply Paid Barcode" contain 37 bars w = 36.5 ' and must have the width of 36.5mm to maintain the bar/gap width of 0.5mm Case "59" w = 51.5 Case "62" w = 66.5 Case Else ' Do not try to process other barcode types - the ActiveX does not support them MsgBox "The ActiveX does not support this FCC" Exit Sub End Select rc = ss.SavePicture(pict_file, EMF, w, 5 ) ' The image width is pre-calculated based on the FCC code. The barcode height is always 5mm If rc > 0 Then MsgBox ss.ErrorDescription Exit Sub End If ' Loading the barcode image stored in the temporary file back into Word Set shp = doc.Shapes.AddPicture(pict_file, False, True, CentimetersToPoints(x), CentimetersToPoints(y)) shp.Name = "auspost_barcode" ' The fixed shape name helps us to delete a previously created barcode when calling the Sub multiple times Kill pict_file ' We don't need the temporary file anymore End Sub

You need to add a reference to the StrokeScribe Class into your VBA project to run this code.

A Note on the Customer Barcodes 2/3

The Customer Barcode 2 (FCC 59) and Customer Barcode 3 (FCC 62) contain a free format field that allow customers to put any information they want into the barcode. Australia Post recommends to use the ‘C’ or ‘N’ Encoding Tables (see below) but customers can use their own techniques.

Australia Post Barcode bar structure

The StrokeScribe encoder does not post-process the free format field and expects the data will contain only digits in the range of [0..3] (0 means a full bar, 1 means an Ascender bar, 2 means a Descender bar, 3 means a Tracker bar)

As an example, let's encode the following data in a Customer Barcode 3:

FCCSorting Code FieldCustomer Information Field
621956357301300112020131020301

To create the barcode, pass the following text string to the StrokeScribe barcode generator:

CreateAustraliaPost "621956357301300112020131020301", 5, 3

To test the Customer Barcode 2:

CreateAustraliaPost "59564391110000010000033223", 5, 3

The ‘C’ Encoding Table

CharacterBar Value
A000
B001
C002
D010
E011
F012
G020
H021
I022
J100
K101
L102
M110
N111
O112
P120
Q121
R122
S200
T201
U202
V210
W211
X212
Y220
Z221
CharacterBar Value
a023
b030
c031
d032
e033
f103
g113
h123
i130
j131
k132
l133
m203
n213
o223
p230
q231
r232
s233
t303
u313
v323
w330
x331
y332
z333
CharacterBar Value
0222
1300
2301
3302
4310
5311
6312
7320
8321
9322
Space003
#013

For example, to encode the text "ABC", pass the "000001002" to the barcode generator.

The ‘N’ Encoding Table

NumberBar Value
000
101
202
310
411
512
620
721
822
930

Related Tutorials

© 2025 StrokeScribe. All rights reserved. Use of any portion of this site constitutes acceptance of our Terms of Use and Privacy Policy.
The website material may not be reproduced, except with the prior written permission.

Facebook X Bluesky Youtube Contact Us