Шрифт - это набор глифов. Такого не существует, как «символ ТАБ». Представьте себе, что вы набираете набор с металлическими глифами 100 лет назад, и какой-то парень (который владеет пишущей машиной) спрашивает вас о «глифовой вкладке».
В пишущей машинке нажатие TAB означает «перейти к следующей позиции вкладки», , Шрифт не знает своей собственной позиции, он знает только внешний вид и размер его глифов. Кроме того, в PDF или PDFBox нет понятия «позиции вкладок». PDF или PDFBox не являются текстовыми редакторами.
И даже с редактором слепое нажатие TAB не всегда радует вас, в зависимости от длины текста, который вы только что написали. Сначала вам нужно будет проверить свою позицию, а затем подумать о том, чтобы попасть в TAB или, возможно, дважды нажать ее.
Вместо этого вы должны сделать следующее: после написания столбца данных вы поместите себя в соответствующую позицию X следующего столбца. С курьерским шрифтом (фиксированным) вы также можете сделать это, вычислив длину строки и добавив соответствующий счетчик пробелов.
Это приводит нас к следующей части - недостающему пространству. Ну, используйте другой шрифт, который имеет пробелы, потому что есть глиф пространства: он выглядит невидимым, но имеет фиксированный размер.
И, наконец, также нет такой вещи, как «символ новой строки». Команда Newline - это команда. Вы уже используете «newLineAtOffset», который должен хорошо работать, чтобы позиционировать себя. См. Ответ mkl о том, как это сделать.
Мне очень нравится моя Консоль App Engine . Это мини-приложение, «плагин» для других приложений. Он предоставляет вам интерпретатор Python AJAX, который работает на сервере, что отлично подходит для разработки и отладки. Иногда я использую cURL, указывающий на консоль App Engine, для запуска (аутентификации) одноразовых удаленных вызовов процедур Python.
(Я написал его, да, но я использую его ежедневно для обслуживания загруженных сайтов. Это первый инструмент, на котором я устанавливаю новые проекты, и я не знаю, как бы жить без этого.)
JaikuEngine , вероятно, крупнейший проект Google App Engine с открытым исходным кодом.
Partychapp - это приложение Java GAE, использующее службы XMPP, позволяющее пользователям вместе создавать чаты и присоединяться к ним.
Мне очень нравится Bloog , простое приложение для ведения блогов. Источник находится на гитхабе .
Мне очень нравится FoFou , простая программа для форумов, которую я использовал.
FoFou имеет открытый исходный код и размещен на github .
StackPrinter - это веб-приложение, которое позволяет печатать вопросы StackOverflow в удобном для принтера виде.
Исходный код находится на github.
Eezee MVC - это простая структура модели, представления и контроллера для Google App Engine.
Возможности