Если вы используете JDK 8, это может быть достигнуто с помощью RichTextFX . Это позволяет добавлять классы стилей в текстовые диапазоны.
Вы можете попробовать настроить заголовки HTTP на следующее:
Content-Disposition: attachment; filename="filename.[yourextention]"
Это довольно часто, если это PDF, расширения браузера хотят читать, а не загружать!
Hope это помогает.