UPCToISBN is a small application that pretty much does what its namesake says: converts the UPC (Universal Product Code) from a book into it's equivalent ISBN (International Standard Book Number). It's most useful when used with a barcode scanner to easily catalog a number of books: UPCs converted are logged to a text view component for copying and pasting into a book cataloging program (such as Books or LIbrary). In addition, the converted UPCs can be logged to a text file to be used as import data and can use Amazon.com's database to determine the title of the book (useful in determining if you have the correct ISBN).
Some history about why I wrote this application
I decided a while back that I wanted to catalog all the books I owned so I could keep track of what I had and show them off on my website. I found a great program called Books that did what I needed except for one thing: batch entry of books by scanning their barcodes. Fortunately, someone else had already done all the leg work of figuring out how to convert the UPC barcode on a book to its ISBN (see the Special Thanks and credits section) so all I had to do was adapt the core functionality into a Cocoa application. I should really point out that this is one of my earlier efforts in Cocoa programming so it's not as well written as my other projects.
Mac OS X v10.3 or better (as of this writing, it's only been tested on 10.3 so most likely it works on 10.2; if you try it and it does, please e-mail me and I'll update the read-me accordingly).
UPCToISBN is fairly straightforward to use: you can either scan the barcode or enter in the UPC manually, which is then converted to it's ISBN. If the conversion is successful, Amazon.com's database is polled via it's online web services to display the title of the book scanned and it's added to the history of ISBNs scanned in so far (and optionally appended to a log file).
The 'Toggle ISBN History' button opens and closes the drawer that lists out ISBNs entered in. From here, the last ISBN in the list can be removed or the history can be completely cleared. If the ISBN history is being logged to a text file, these two buttons will update the file to match what is being shown.
Lastly, the little button next to the 'Convert!' button with the Amazon.com icon uses the ISBN of the last converted UPC to build a product details URL for Amazon.com and opens it in the default web browser. In other words, it looks up the last book you just scanned on Amazon's website.
Not all UPCs scanned in will be valid, or even be a UPC for a book! If a conversion fails, one of the following error messages are shown:
All of the UPC-to-ISBN conversion code is based off of the Python scripts from The Book-Scanning Project as well as most everything I ever needed to know about UPCs, ISBNs, and how they relate to books. The website can be found at http://www.eblong.com/zarf/bookscan/.
Since regular expressions aren't built into Cocoa, I embedded the MOKit framework inside the application to fill this hole. MOKit can be found at http://mokit.sourceforge.net/.
Amazon.com thoughtfully developed something called their Amazon Web Services kit which I used to handle all the ISBN online data lookup. They are obviously at http://www.amazon.com/.
Everything else is my own work which you can always find the latest releases of at Malarkey Software.
I'm releasing UPCToISBN as freeware so feel free to distribute as far and as wide as you wish, provided it's not for profit (i.e., don't put it on a CD to sell or some such) without, at the very least, contacting me. Any comments, suggestions, bugs to report, and / or huge sums of money you want to send my way, feel free to send me an e-mail.
For the huge sums of money, go here.And lastly:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.