Move water using raspberry pi
As Wouter said, this may not be directly an electrical engineering question, but it does involve electrical control and since I have a fair amount of experience with fluid control, I'll answer and let the question be moved if necessary.

First, you mention that some level of precision is needed, but don't specify it. What precision does the liquid need to be transferred in? The reason for choosing a pump vs. a gravity feed generally is due to where the fluid supply has to be placed, or cost, or flow rate needs. Precision is not normally a reason to choose a pump vs gravity. If the printer water reservoir has a sensor that indicates when it's full then you shut off the water supply when that sensor is activated.

If the printer tank doesn't have such a sensor and you can't retrofit one, then you could use a flow meter (disclaimer: I am affiliated with that site) in line with the piping to measure the water that's being dispensed into the tank and stop the valve/pump appropriately

Next, if you are using a centrifugal pump, such as a small impeller pump, then they are generally quite tolerant of being run with the output closed off. Positive-displacement pumps such as syringe pumps, not so much. Using a pump gives you flexibility in where to place the water supply. However, if you can put the supply overhead, then gravity-feed solenoid valves will control the water flow accurately without needing a pump.

As for control from the Pi, its outputs won't be able to drive solenoid valves or pumps directly. You'll need to have the Pi control a DC solid-state relay or a FET driver that can handle the load.