I'm a little late because I wanted to say something similar to what moonboots gave as an answer. I'll give you a short example how I would do it:
- Let's say the texture should be real life size 75 x 50 cm
- Import the textures with "Images as Planes"
- In the Image Texture node of the material, set the extrapolation mode to "Repeat" instead of "Clip"
- Connect a Mapping node and a Texture Coordinate node to the image
- Connect the Mapping node to the "Object" output of Texture Coordinate
- In the Mapping node set Scale X to 1 / 0.75 (75 cm) and Y to 1 / 0.5 (50 cm)
Now you can scale the plane to the size you need it for a floor or wall or whatever - the texture will be the correct real life size as long as you apply the objects scale so that it's 1/1/1.
The only problem is that - since the texture is not connected to any UVs or geometry of the new object - it will definitely not work well on curved objects and is only suitable for things like floors or walls or similar flat, even surfaces. To position it as desired you can use "Location" in the Mapping node.
Note: to move the texture for example 20 cm in X direction, you have to divide this by the X dimension of 75 cm: 0.2 / 0.75
The easiest would be to connect the "Location" input to a Vector Math node set to "Multiply" where you already set the same factors as in "Scale".