2015-10-22 4 views
1

Возможно ли создать нумерованный список без отступа? Somethig так:Как создать список без отступов?

1 A

1-1 a_a

2 B

2-1 B_B

2-1-1 B_B_B

+0

Можете ли вы предоставить некоторый псевдокод? Прямо сейчас, неясно, если вы говорите о вложенном списке или нет. –

ответ

0

Пожалуйста, обратите внимание на примерах ListNumbers.

Когда мы создаем упорядоченный список, как это:

List list1 = new List(List.ORDERED); 
list1.setFirst(8); 
for (int i = 0; i < 5; i++) { 
    list1.add("item"); 
} 
document.add(list1); 

Мы получим результат, как это:

enter image description here

В случае необходимости, дополнительное пространство добавляется между меткой и содержанием элемент списка.

Ваш вопрос: как мы можем удалить этот отступ. Это вопрос добавления одной строки в ваш код:

List list2 = new List(List.ORDERED); 
list2.setFirst(8); 
list2.setAlignindent(false); 
for (int i = 0; i < 5; i++) { 
    list2.add("item"); 
} 
document.add(list2); 

Теперь результат выглядит следующим образом:

enter image description here

Как вы можете видеть, не добавляли дополнительное место после пунктов 8 и 9

Этот ответ настолько прост, что я не могу поверить, что на самом деле это был весь вопрос (если бы это было так, это означало бы, что вы сами не делали никаких усилий). Глядя на желаемый результат, я предполагаю, что в игре больше, чем вы упоминаете в теме своего сообщения.

Я вижу:

  • Выборочная нумерация: нет . после номера.
  • Вложенная структура: 2, затем 2_1 и т. Д.

Изменение символа списка в случае упорядоченных списков может быть сделано с помощью setPreSymbol() и setPostSymbol() методы.

Посмотрите на этот фрагмент:

List list3 = new List(List.ORDERED); 
list3.setFirst(8); 
list3.setAlignindent(false); 
list3.setPostSymbol(" "); 
for (int i = 0; i < 5; i++) { 
    list3.add("item"); 
    List list = new List(List.ORDERED); 
    list.setPreSymbol(String.valueOf(8 + i) + "_"); 
    list.setPostSymbol(" "); 
    list.add("item 1"); 
    list.add("item 2"); 
    list3.add(list); 
} 
document.add(list3); 

Сначала удалите точку, которая добавляется после каждого номера автоматически, мы используем метод getPostSymbol() для этого:

list3.setPostSymbol(" "); 

Тогда гнездо list внутри list3. Поскольку мы хотим получить результат, который выглядит как 8_1, 8_2, 9_1 и т. Д.Мы используем setPreSymbol() метод, как это:

list.setPreSymbol(String.valueOf(8 + i) + "_"); 

Теперь результат выглядит следующим образом:

enter image description here

Очевидно, что можно утверждать: почему вы хотите использовать List для такого рода результат? Почему не только серия объектов Paragraph. Однако: если вы создаете Tagged PDF, лучше использовать List, потому что iText автоматически пометит это содержимое как список (например, в контексте доступности).

+0

Большое спасибо Bruno – Valeriane

+0

@ Valeriane Не стесняйтесь принимать ответ, если он решил вашу проблему. (Таким образом, другие люди могут видеть, что на вопрос ответили мгновение). –

+0

Да, я только что завершил реализацию кода – Valeriane

Смежные вопросы