2016-06-15 2 views
1

Я показываю некоторый контент в списке, чтобы показать его в pdf-файле.Полужирный текст в Pdf-списке

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

Например:

Это ListItem Жирный Текст.

Как я могу это сделать?

Вот мой код:

List lst_note = new List(List.ORDERED); 

lst_note.IndentationLeft = 10f; 
lst_note.Add(new iTextSharp.text.ListItem("This single **word** should be Bold", FontFactory.GetFont(FontFactory.TIMES_ROMAN, 10))); 

disclaimer.Add(lst_note); 

EDIT

Я попытался это:

Font bold = new Font(FontFactory.GetFont(FontFactory.TIMES_BOLD, 10, Font.BOLD)); 
    lst_terms.Add(new iTextSharp.text.ListItem("Some Text "+ new Chunk("this should bold", bold), FontFactory.GetFont(FontFactory.TIMES_ROMAN, 10))); 

Но это не сработало

ответ

0

Пожалуйста, обратите внимание при ответе на этот вопрос: How can I use regular and bold in a single String?

В ответ рассказывает о Paragraph, но он также работает на ListItem как ListItem подкласс Paragraph:

Font regular = new Font(FontFamily.HELVETICA, 12); 
Font bold = Font font = new Font(FontFamily.HELVETICA, 12, Font.BOLD); 
ListItem li = new ListItem("NAME: ", bold); 
li.Add(new Chunk("regular", regular)); 

Вы можете добавить столько Chunk объекты, используя так много различных шрифтов, как вы хотите.

+1

Я не хочу, чтобы принять новый ListItem для каждого элемента, который будет отображаться, потому что есть много пунктов, чтобы быть displayed.I не думаю, что это будет полезно взять новый элемент списка для каждого элемента. –

+0

Как @RahulNikate объясняет, что это единственный способ сделать это в iTextSharp 5. Вы можете создать удобный метод для тяжелой работы, но составляя элементы списка, для которых требуются разные шрифты (семейства шрифтов, размеры шрифтов, стили шрифтов) выполняется с использованием разных 'Chunk'. Даже если вы не создаете «ListItem» в своем коде, iTextSharp создается внутри, поэтому ваше возражение на самом деле не имеет смысла. –

+0

ОК спасибо, сэр это сработало :) –

1

Вы можете сделать это с помощью Paragraph и Chunks, как показано ниже:

Chunk c1 = new Chunk("This single", new Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL, BaseColor.BLACK))); 
      Chunk c2 = new Chunk("word", new Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD, BaseColor.BLACK))); 
      Chunk c3 = new Chunk("should be Bold", new Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL, BaseColor.BLACK))); 

      Paragraph p2 = new Paragraph(); 
      p2.Add(c1); 
      p2.Add(c2); 
      p2.Add(c3); 

List lst_note = new List(List.ORDERED); 

lst_note.IndentationLeft = 10f; 
lst_note.Add(new iTextSharp.text.ListItem(p2); 

disclaimer.Add(lst_note); 
+0

Есть много элементов списка, которые будут отображаться. Я не думаю, что это предпочтительнее для многих кусков и абзацев для каждого элемента списка. Есть ли другой способ –

+0

Вы можете создайте одну функцию для создания абзаца и добавьте в нее куски и вызовите эту функцию при добавлении 'ListItem'. Я не вижу другого способа сделать это. Однако вы можете попробовать обернуть текст в' word to bold. Не уверен, что это сработает. –

+0

ok Rahul Как я могу использовать функцию? –

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