Object-oriented design patterns are possibly "used" during the design of the application. This typically should occur after the application's technical and non-technical requirements have been identified and documented. "Design" does not mean writing code, it means "design." Writing application code comes after application design. Note, the application design process and the architecture design process are not the same. These are two different design activities.
Object-oriented design patterns have nothing to do with architecture design.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com