Step 1: Make sure your printer is shared on the network
On your Mac, open System Preferences, choose Print & Scan, and then select your device on the list on the left. Tick ‘Share this printer on the network’.
Step 2: Check network settings for your virtual machine
In the VirtualBox manager, open your Windows virtual machine’s settings, and under Network, ensure you’re using ‘Bridged Adaptor’ rather than ‘NAT’. This will make your life much, much easier later on.
Step 3: Install and set up your printer using Bonjour
Bonjour ships on all Macs, but not on Windows, which is a shame because it makes setting up network connections much easier. Thankfully, Apple offers a cut-down version for Windows computers, so download Bonjour Print Services for Windows, and install it. This will add a ‘Bonjour Printer Wizard’ icon to your desktop.
Run the Bonjour Printer Wizard. If you’ve done the first two steps correctly, your printer should be listed. Click Next, and, if you’re lucky, Bonjour will install the correct driver and add the printer to Windows for you. Sorted. If not, then…
Step 4: Install the printer driver in Windows
Sometimes Bonjour won’t be able to identify which printer driver you need and will ask you to select it. Again, if you’re lucky, your printer will be one of those that Windows ships with, but if not, you may reach an impasse here. Some people have had luck with using a driver that is similar to their printer, but this doesn’t always work.
Instead, we’ll connect the printer directly to Windows to convince it to install the driver that way. VirtualBox lets you bridge any USB device which is plugged into your Mac, so that the virtual machine can see it. Turn your printer on, and then whilst Windows is running, click on the Devices menu in VirtualBox, select USB devices, and then choose your printer. Windows should detect that the printer is now ‘plugged in’, and so it will install the necessary drivers. Complete the installation, disconnect your printer using VirtualBox and then shut down both your virtual machine, and your Mac, to ensure that your printer is correctly picked up by your Mac on the next boot.
Start your Mac again, and then open Windows in VirtualBox, and try to run the Bonjour Printer Wizard again. Hopefully, this time you’ll be able to select your printer driver from the lists when presented (annoyingly it’s not searchable).
This still didn’t work for my printer, so I had to do one final trick. I clicked ‘Have Disk’, and then browsed to the c:\Windows\System32\DriverStore\FileRepository folder, then sorted the sub-folders by date. My printer is by HP, and one of the newly-created gobbledegook folders had ‘HP’ in the title which turned out to be my printer. I selected this, and was finally able to get the printer working, with the above test page as proof.
Why not just connect the printer directly?
In step 4, I mentioned you can simply connect your printer directly to the virtual machine, thus avoiding the dilly-dallying around with Bonjour. This works, but it’s flaky; once you’ve connected your printer to Windows, you may need to reboot your Mac before any Mac applications can print to it. Whilst setting up Bonjour is more effort initially, once it’s done, you should find it easier to work with.
If anyone’s interested, I went through all of this because I wanted to print out a coupon for a free one litre carton of grape juice and couldn’t get the Coupon Printer to work correctly on my Mac.