I am looking to do something like this in javafx 2.2 or at least in javafx 8. I browsed the Text javadoc and css reference without results.
It is possible to do this effect by displaying and svg in a WebView. But my application have to display a lot of text with this effect. The WebView is a too heavy component for drawing a text with this effect.
I asked the same question on the oracle technology network.
Here is an abuse of the PathTransition to get text plotted along a Bézier Curve.
The program lets you drag control points around to define a curve, then plot text along that curve. Characters in the text are spaced equidistantly, so it works best if the total length of the curve matches pretty close to the text width with "normal" spacing and it doesn't make adjustments for things like kerning.
The samples below show:
The solution was a quick hack based on the answer to the StackOverflow question: CubicCurve JavaFX. I am sure a better solution could be found with more effort, time and skill.
Because the program is based on transitions, it would be very easy to adopt it so that text can be animated to follow the curve, wrapping from right back to left on overflow (like you might see in marquee text or a stock ticker).
Any of the standard JavaFX effects such as glows, shadows, etc and font changes can be applied to get things like the shadowed effect from the paintshop pro text in your question. A glow effect is a nice effect to apply here as it subtly softens the jagged edges around rotated characters.
Also the PathTransition this solution is based on can take any arbitrary shape as input for the path, so the text can follow other kinds of paths, not just cubic curves.
Another possible solution would be to measure each text character and do the mathematics to interpolate the text location and rotation without using a PathTransition. But PathTransition was already there and worked fine for me (maybe the curve distance measurements for the text advances might challenge me anyway).
Answers to Additional Questions
No. Implementing an effect would require performing the mathematics for displaying the text along the bezier curve, which my answer doesn't provide (as it just adopts the existing PathTransition to do this).
Besides, there is no public API in JavaFX 2.2 for implementing your own custom effect.
There is an existing DisplacementMap effect which could perhaps be used to get something similar. However, I feel that using the DisplacementMap effect (and perhaps any effect to adjust the text layout) would likely distort the text.
IMO, writing text along a Bezier curve is more layout related than effect related - it is best to adjust the layout and rotation of the characters rather than to use an effect to move them around.
You could subclass Pane and create a custom PathLayout that is similar to a FlowPane, but lays out nodes out along a path rather than a straight line. The nodes to be laid out are formed by a Text node for each character, similar to what I have done in my answer. But even then, you aren't really accurately rendering the text because you want to take into account things like proportionally spaced letters, kerning etc. So, for total fidelity and accuracy, you would need implement your own low level text layout algorithm. If it were me, I'd only go to that effort if the "good enough" solution provided in this answer using PathTransitions turned out not to be high enough quality for you.
You could use the WebView and some html to display a svg. Here is an example:
Result:
This is no optimal solution since the JavaFX WebView behaves a bit touchy when it should behave like a label in my experience, but it is something to start with.
EDIT
Since you don't want to use WebView directly, you could use a single instance of a WebView to render the scene with html and then take a snapshot of it to produce an ImageView. See this example: