For what its worth, I suspect you’re doing to discover this isn’t the case, unless you have no requirement for any precision in the sizes of features you’re “printing”. I have a setup here, running Klipper, that does pretty much what you’re talking about doing, just with other fluids. And without precise control of extrusion/dispensing rates, the output is essentially useless. It may be fine for a robot that is automating dabs of glue or something, but its really not otherwise. (Basically, if you’re dispensing/extruding while stopped, good. If you need to do it when moving, its just not going to work.)
So you probably should be planning from the start how you’re doing to do that, otherwise you’re likely to put a lot of work in and discover you need to start over.
The problem I immediately ran into is that Klipper has no way of coordinating concurrent moves across axis, and can’t aggregate moves between gcode commands, and when you’re doing fluid extrusions at fine levels of detail, you quickly run into the problem that small moves (or segments of arcs if you’re using the arc support) end up with extrusion rates that are at or below the minimum rate your control electronics can handle.
If you’re using an external device like the one you linked to, you’re also going to have a lag problem – even a millisecond or two lag is going to cause extrusions to end up in the wrong place. Klipper really needs to know precisely when its going to start and stop, and I suspect you will not be able to tune pressure advance enough if you’re sending commands to an external device with no feedback. (And to use any feedback, you’ll need a custom kinematic for the extruder.)
My toolhead utilizes a stepper, which at least gives me an immediate response to increasing and decreasing extrusion pressure. The problem I’ve got is that the smallest extrusion amount that Klipper can handle with 256 microstepping is about 0.00002mm at a 1.8 degree per step and 1mm-per-rotation rate. And, as it turns out, that’s bigger than the E moves that end up being required. Some slicers will do extruder pressure smoothing across moves (meaning, it’ll do multiple XY moves coordinated with a single extruder move) but Klipper doesn’t do that, so an E step less than that just rounds to zero and nothing comes out.
I ended up having to override G0 and G1 such that if there’s any non-zero value of E, it has to be +/-0.00002, to make sure things get output.
Basically, the TL;DR is that you may find you need a more sophisticated setup than you think, and if you do, you may discover the very long list of shortcomings in Klipper when you’re doing something that isn’t 3D printing. In my case, I am stuck with Klipper because the microfluidics toolhead runs on the same kinematic frame as my 3D printing toolheads, and the controller is Klipper, so it uses a combination of some tweaks to Klipper’s code and a few thousand (ugh) lines of gcode macros.