Personally, I would say you can read all the books in the world, but that doesn't make you a good programmer. I can read every book ever written on being a baseball player, but until I start swinging a bat, it's only academic.
And unless you play with a team, you're also missing out on a lot. So even if you write a bunch of code, until other developers start seeing it and critiquing it, and you start seeing other developer's code, you're only getting about 20% of the education you could.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
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