Arduino as USB Slave

I need to emulate Arduino as a USB slave (emulate as a Printer Device Class). Can anyone help as to what kind of hardware interfacing with a USB port and Arduino is required to make this happen?