For one-off keycaps people usually go for either
- SLA Resin print
- Resin cast (by first either cnc'ing or 3d printing a mold)
- MJF 3d print
For legends, the more popular solution is to have incised text and manually apply resin infill to make the text clearer, but this is a time-consuming process.
Both SLA and MJF 3d prints can be ordered at reasonable prices online in high resolutions.
There is of course also more advanced means of making your own keycaps like the Keymacs-way, showed in the video above, but the up-front cost of the CNC machine alone is quite high - and the time investment arguably even higher.