There are a few solutions to do what you want to do.
1) Hook up your printer and external drive to your desktop. Set both the drive and the printer to be shared. Check
here for most of the details. This requires your desktop be left on all the time.
2) Purchase a router that is also handles print and file serving. The d-link branding is called
Shareport, but all major router manufacturers have a similar product. You would then plug all your USB devices into a USB Hub (
like these ones), and the hub into the router.
This method is probably the best, but also costs the most money.