Моя программа генерирует относительно простые PDF-документы по запросу, но у меня возникают проблемы с символами юникода, такими как кандзи или нечетные математические символы. Чтобы записать обычную строку в формате PDF, поместите ее в скобки:
(something)
Существует также возможность избежать символа с восьмеричными кодами:
(\527)
но это только до 512 символов. Как вы кодируете или избегаете более высоких символов? Я видел ссылки на потоки байтов и строки с шестнадцатеричным кодированием, но ни одна из прочитанных мной ссылок, похоже, не готова рассказать мне, как это сделать на самом деле.
Изменить: В качестве альтернативы укажите мне хорошую библиотеку Java PDF, которая будет выполнять эту работу для меня. Тот, который я сейчас использую, представляет собой версию gnujpdf (в которой я исправил несколько ошибок, поскольку исходный автор, похоже, прошел AWOL), что позволяет вам программировать интерфейс AWT Graphics, и в идеале любая замена должна делать то же самое.
Альтернативы кажутся либо HTML → PDF, либо программной моделью, основанной на параграфах и блоках, которые очень похожи на HTML. iText является примером последнего. Это означало бы переписывание моего существующего кода, и я не уверен, что они дадут мне такую же гибкость при планировании.
Изменить 2: Я раньше этого не понимал, но библиотека iText имеет интерфейс Graphics2D и, похоже, отлично работает с юникодом, так что я буду использовать. Хотя это не ответ на заданный вопрос, он решает проблему для меня.
Редактировать 3: iText работает хорошо для меня. Думаю, урок, когда он сталкивается с чем-то, что кажется бессмысленным, искать кого-то, кто знает об этом больше, чем вы.