Move UV coords like Object coords?
As the texture is projected in the positive quadrant of the XY plane of the input vector, we need to translate the coordinates by (0.5,0.5,0.0), and clip them.

And to stop the texture from being projected on other places of the geometry (i.e. the backside), one can use a mask to limit the Z distance.

Now it's only a matter of placing and orient the empty for the needed projection.

Here's an example: