При создании файла PDF, я прилагаю некоторую информацию к нему с этим кодом, чтобы сделать его доступным для чтения в мою программу:iText Проблемы с кодировкой PdfDictionary?
PdfDictionary dictionary = new PdfDictionary();
PdfObject object;
PdfName index;
ArrayList<String> content = getCompactData(document);
for (int i = 0; i < content.size(); i++)
{
object = new PdfString(content.get(i));
index = new PdfName(Integer.toString(i+1));
dictionary.put(index, object);
}
writer.getExtraCatalog().putAll(dictionary);
Когда я открываю программу, я использую этот код для извлечения данных:
PdfDictionary dictionary = reader.getCatalog();
PdfName index;
PdfObject line;
ArrayList<String> data = new ArrayList<String>();
for (int i = 1; i < dictionary.size()-2; i++)
{
index = new PdfName(Integer.toString(i));
line = dictionary.getAsString(index);
data.add(line.toString());
}
Это все работает отлично, за исключением одной маленькой детали. По какой-то причине такие персонажи, как čšđćž, не переходят к процессу должным образом. Когда я пытаюсь извлечь данные, моя программа получает путаницу и не может распознать буквы.
Несколько нот:
- Моя рабочая область кодировка UTF-8
- При работе с моей программой я могу войти в эти письма без каких-либо проблем, они будут отображаться правильно.
- Я использую пользовательский шрифт .ttf (truetype), который, как я знаю, поддерживает эти символы.
- Я попытался распечатать содержимое каталога после последней строки сохраненного кода, который я предоставил, все было распечатано правильно.
- Я также попытался распечатать содержимое каталога строки до первого в открытом коде, символы не отображались.
Поэтому я понятия не имею, где все это может пойти не так. Вы?
Спасибо вы, это сработало! P.S. Вы также можете написать для изменения 'line' из' PdfObject' в 'PdfString' – Karlovsky120