Как управлять форматированием текста при чтении файла сохранения? - PullRequest
2 голосов
/ 29 апреля 2010

У меня есть приложение Java-апплета, в котором я использую область расширенного текста. Я пишу УРДУ на национальном языке ПАКИСТАН. мне удалось сделать это с кодами универа. проблема в том, что когда я пишу урду в текстовой области и выбираю шрифт и цвет для каждой строки, он делает все это, но когда я сохраняю этот файл с использованием кодировки UTF-8, а затем снова открываю его, он показывает весь текст, отформатированный при выборе формата последней строки.

Мое требование - открыть файл в сохраненном виде. я имею в виду, что каждый файл должен иметь такое же форматирование, как и перед сохранением.

Я все еще страдаю от этой проблемы, даже после того, как щедрость может помочь! от 07-06-2010.

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Видите ли, когда вы на самом деле форматируете текст, используя некоторый шрифт и цвет, он генерирует некоторый код RTF / HTML, верно? Вы должны попытаться получить RTF / HTML текстовой области, чтобы все ваше форматирование могло быть сохранено в файле.

В основном это текстовый файл, так что вам нужно получить его со всем кодом, верно?

Проверьте эту ссылку для механизма сохранения текста в формате RTF.

Java JTextPane RTF Сохранить

Также проверьте HTMLEditorKit для получения дополнительной информации.

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/html/HTMLEditorKit.html

спасибо.

0 голосов
/ 21 мая 2010

UTF-8 - это присвоение кодов символам. Для удобства было принято решение, что младшие 127 кодов одинаковы в ASCII и UTF-8. Для всех символов коды различаются.

Шрифты UTF-8 имеют карту символов (cmap), которая присваивает кодам Юникод их глифы. Существует очень мало шрифтов, которые охватывают большие части диапазона юникода (Arial Unicode и Gentium, я знаю, есть некоторые другие), и чтобы получить полное покрытие в решении рендеринга, вы должны смешать шрифты.

Чтобы иметь возможность отображать произвольные тексты Unicode, вам необходимо создать набор шрифтов с одним шрифтом по умолчанию и резервными шрифтами для символов Unicode, которые не содержат шрифта по умолчанию. Назад к Java и вашей текстовой панели: если вы выбираете шрифт для определенной части текста в вашей текстовой панели, это означает только то, что для визуализации текстового глифа используются выбранный шрифт. Но сам текст никак не связан со шрифтом.

Итак, у вас есть два варианта:

  1. Вы не просто сохраняете текст UTF-8, но и информация о выбранный шрифт или
  2. Дальше интереснее: Вы сохраняете текст просто как UTF-8 и применить шрифты после загрузки текст в вашу текстовую панель!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...