I would like to read map files created by OCAD (.ocd). The file format specification is open and available on the web page, but it's binary and complex.
Is there an open source library that can be used for reading these .ocd files?
If you want migrate from OCAD on some free & open-source software then highly recommend you OpenOrienteering Mapper (OOMapper for short) - cartographic desktop publishing software for creating and printing maps (distributed with symbol sets for orienteering maps, but other symbol sets could be created in easy way directly in OOMapper).
OpenOrienteering Mapper's site - http://www.openorienteering.org/apps/mapper/
As advantage of migrating on OOMapper from OCAD:
At this point OpenOrienteering Mapper is free & open-source alternative to OCAD. So, if you already has some own created maps in
.ocd (OCAD) or
.dxf format you could easy open this map for editing in OOMapper too!
As of now, there is an OCAD viewer available from http://ocad.com/en/downloads/ocad-viewer This will allow you to open and view .ocd files.
OOM Open Orienteering Mapper can do it for you. https://github.com/OpenOrienteering/mapper/
This is a work in progress and not feature complete at the moment, but hopefully useful to you: