Printed with two PETG filaments on a glass bed with hairspray. Printed the black lines (with a custom end code that doesn’t turns off motors) then printed the white over it in a separate gcode (also with custom start with no homing). It even allows me to go with an exact and cut off hairs and blobs before laying the white. The. The two fuse on the same layer so the color isn’t sticking out.
I print the letters face down on the print bed with a first Gcode (make sure the geocode doesn’t stop the motors at the end). Then you print a second file over it for the plate that has a gap of your initial layer height where the letters are. The benefit is that if I fail a print, I only wasted on layer not a whole print.
If you use something like tinkercad you can hold both objects in the same spot and export them one at a time. They will in turn populate the same position in cura.