Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fork of Jeff Lamarche's original barcode generator library at
Latest commit 7d96a06 Chris add link back to original
Failed to load latest commit information.
CocoaTouchBarcodes.xcodeproj Change project to specify latest ios version for all configurations
.gitignore Add XCode4 directories to .gitignore
CocoaTouchBarcodes_Prefix.pch initial commit
JapanPostBarcode.h initial commit
JapanPostBarcode.m Whoops
NKDAbstractUPCEANBarcode.h initial commit
NKDAbstractUPCEANBarcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDBarcode.h increase dpi to reflect iphone
NKDBarcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDBarcodeFramework.h fix old header ref
NKDBarcodeOffscreenView.h refactor drawing method, add pdf rendering method
NKDBarcodeOffscreenView.m fix memory leak
NKDCodabarBarcode.h initial commit
NKDCodabarBarcode.m initial commit
NKDCode128Barcode.h initial commit
NKDCode128Barcode.m Update NKDCode128Barcode.m
NKDCode39Barcode.h initial commit
NKDCode39Barcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDEAN13Barcode.h initial commit
NKDEAN13Barcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDEAN8Barcode.h initial commit
NKDEAN8Barcode.m Add XCode4 directories to .gitignore
NKDExtendedCode39Barcode.h initial commit
NKDExtendedCode39Barcode.m initial commit
NKDIndustrialTwoOfFiveBarcode.h initial commit
NKDIndustrialTwoOfFiveBarcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDInterleavedTwoOfFiveBarcode.h initial commit
NKDInterleavedTwoOfFiveBarcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDModifiedPlesseyBarcode.h initial commit
NKDModifiedPlesseyBarcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDModifiedPlesseyHexBarcode.h initial commit
NKDModifiedPlesseyHexBarcode.m initial commit
NKDPlanetBarcode.h initial commit
NKDPlanetBarcode.m initial commit
NKDPostnetBarcode.h initial commit
NKDPostnetBarcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDRoyalMailBarcode.h initial commit
NKDRoyalMailBarcode.m initial commit
NKDUPCABarcode.h initial commit
NKDUPCABarcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NKDUPCEBarcode.h initial commit
NKDUPCEBarcode.m FIXED › Compatibility with iOS4 (replaced deprecated methods)
NSString-UPCEAN.h initial commit
NSString-UPCEAN.m FIXED › Compatibility with iOS4 (replaced deprecated methods) add link back to original
UIImage-NKDBarcode.h add pdf data generating helper method (TODO: move to more logical place)
UIImage-NKDBarcode.m add pdf data generating helper method (TODO: move to more logical place)
UIImage-Normalize.h initial commit
UIImage-Normalize.m initial commit

This is a fork of Jeff Lamarche's Cocoa Barcodes project, with the code modified to work on the iPhone and iPad. In my testing, a CCD and laser scanner can read UPC and Code 128 barcodes directly from the screen w/ no issue. I haven't tested other barcodes yet.

Usage: You can add the project as a dependency to your existing project and add a target dependency on the static library target. Alternatively you can add the source code bulk to your own project.

If you use the static library dependency, you'll want to ensure that you are compiling your own project with the -ObjC "Other Linker Flag" in your project settings.

To use the library, you'll want to include the relevant header file for the barcode you want to generate, as well as the UIImage category for generating the image.

#import "NKDUPCEBarcode.h"
#import "UIImage-NKDBarcode.h"

// etc...

NKDUPCEBarcode * code = [[NKDUPCEBarcode alloc] initWithContent:@"Your Barcode Contents"];
NSData * generatedPdf = [UIImage pdfFromBarcode:code]; // Generate the barcode as a PDF
UIImage * generatedImage = [UIImage imageFromBarcode:code]; // ..or as a less accurate UIImage


  • Add tests. (!!!!!!!!!!!)
  • Better documentation
  • Really, the entire API pretty much needs a refactor. The UIImage category as entry point into generating images as a start, NKDBarcodeOffscreenView doesn't really need to subclass UIView, etc..
  • Leak checks
  • ARC compatibility? I guess?

Things that are missing:

  • Rendering the actual numbers of a code below the barcode
  • rectForPage, knowsPageRange don't have any affect on the barcode rendering now

Things that have changed:

  • the UIImage for the barcode is generated on the calling thread, as opposed to the library's old behavior of generating the image on a separate thread
  • the library provides UIImage and PDF generation of barcodes - PDF is more accurate

Things that misbehave:

  • The Code128 generation works for many common cases, but we need a test suite to verify behavior

Things that have been fixed:

Current status:

  • I'm very inactive with maintenance. I'm not currently maintaining the code, nor do I have a plan to get to any of the major checklist items anytime soon. If you're interested in taking a more active role in development, contact me and I'll do what I can to help you out.

Other contributors:

Something went wrong with that request. Please try again.