Browse our Products
Aspose.BarCode for Python via Java 25.12
This page contains release notes information for Aspose.BarCode for Python via Java 25.12.
All Changes
| Key | Summary | Category |
|---|---|---|
| BARCODENET-39046 | Implement support for US Driving License format | Enhancement |
Public API changes and New Features
AAMVA DL/ID Card Barcode Support
Support for encoding and decoding AAMVA-compliant Driver License and Identification Card barcodes has been added through the new USADriveIdCodetext class. This enables working with the structured data embedded in U.S. Driver License PDF417 barcodes, including:
- standardized mandatory fields,
- optional AAMVA elements,
- jurisdiction-specific subfiles,
- automatic subfile construction (types, offsets, lengths),
- full parsing and reconstruction of the codetext.
The implementation follows the AAMVA DL/ID Card Design Standard (2025).
Specification: AAMVA DL/ID Card Design Standard (2025)
def exampleCreateUsaDl(self):
usDl = USADriveIdCodetext(None)
usDl.addSubfileDesignator(SubfileProperties("DL"))
usDl.addSubfileDesignator(SubfileProperties("ZF"))
usDl.setIssuerIdentificationNumber("123456")
usDl.setAAMVAVersionNumber("10")
usDl.setJurisdictionVersionNumber("01")
usDl.getJurisdictionSpecificSubfile().addOrReplace("ZFA", "TEST")
usDl.getJurisdictionSpecificSubfile().addOrReplace("ZFB", "1234")
usDl.getMandatoryElements().setCustomerIDNumber("99999999")
usDl.getMandatoryElements().setAddressState("FL")
usDl.getMandatoryElements().setAddressCity("MIAMI")
usDl.getMandatoryElements().setFirstName("SAMPLENAME")
usDl.getMandatoryElements().setFamilyName("SAMPLEFAMILYNAME")
usDl.getMandatoryElements().setDateOfBirth(date(1990, 1, 1))
usDl.getMandatoryElements().setAddressStreet1("9999 SAMPLE ST")
usDl.getMandatoryElements().setEyeColor(USADriveIdEyeColor.BROWN)
usDl.getMandatoryElements().setSex(USADriveIdSex.FEMALE)
usDl.getOptionalElements().setHairColor(USADriveIdHairColor.SANDY)
usDl.getOptionalElements().setWeightPounds(130)
cg = ComplexBarcodeGenerator(usDl)
img = cg.generateBarCodeImage()
r = BarCodeReader(img, None, DecodeType.PDF_417)
found = r.readBarCodes()
self.assertEqual(len(found), 1)
usaCodetext = ComplexCodetextReader.tryDecodeUSADriveId(found[0].getCodeText(None))
self.assertEqual(usaCodetext.getMandatoryElements().getAddressCity(), "MIAMI")
self.assertEqual(usaCodetext.getIssuerIdentificationNumber(), "123456")
self.assertEqual(usaCodetext.getNumberOfEntries(), 2)
self.assertEqual(usaCodetext.getJurisdictionSpecificSubfile().size(), 2)
self.assertEqual(usaCodetext.getJurisdictionSpecificSubfile().get("ZFB").getValue(), "1234")