I had exactly the same issue ie HP Envy 4520 printer only printed black and white from my laptop, but printed colour from my iPhone (and also from a scanned image).
I went into the Windows start menu (bottom left, I have Windows 10 by the way), and clicked on the “Settings” cog. I then clicked “Devices” on the Windows Setting menu, and then “Printers & Scanners” on the left-hand side. I then left-clicked on the “HP Envy 4520 series” printer, and clicked “Remove Device”. Then, I clicked “Add a printer or scanner” and clicked the HP Envy 4520 series option to re-add. Hey presto, my printer is now printing colour from my laptop.