ive done this before.
i used joy2key.

the only problem i had with it is movement, since for some reason you cant wire the movement keys to the movement pad on the controller i had to use the analog stick instead. what would happen is i would randomly lay down or go up ladders that i dont want to because the slightest tilt will read it as an up/down response. i now would imagine it to be worse since i did it before being able to jump down platforms so youll probably mess up moving around a lot. this made stop using the controller and i switched back to keyboard.
another pet-peeve was when i had to talk id have to set down the controller and go back to the keyboard, type, then pick up the controller again, only to type later again, etc...