[英]How to add text with different weights to a single ListItem using iText List
我用iText 7創建了一個問題和答案列表,其中問題和答案都顯示在列表的同一行。 我正在嘗試將問題變為粗體,同時將答案保留為正常的字體粗細。 當我運行類似於下面顯示的代碼時,我得到(com.itextpdf.layout.element.Text@73df99a1)代替粗體文本。 是否可以在同一個iText 7 ListItem中獲取各種權重的字體?
String dest = "destination.pdf"
PdfWriter writer = new PdfWriter(dest);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
List qaList = new List();
qaList.add(new ListItem(new Text("Question 1?").setBold() + "Answer 1"));
qaList.add(new ListItem(new Text("Question 2?").setBold() + "Answer 2"));
document.add(qaList);
document.close();
您可以在iText的7應用不同的樣式ListItem
通過顯式地創建一個Paragraph
包含不同風格的作品,並補充說,第一個列表項:
Document document = new Document(pdfDocument))
List qaList = new List();
ListItem item = new ListItem();
Paragraph paragraph = new Paragraph();
paragraph.add(new Text("Question 1? ").setBold())
.add(new Text("Answer 1"))
.setMarginTop(0).setMarginBottom(0);
item.add(paragraph);
qaList.add(item);
item = new ListItem();
paragraph = new Paragraph();
paragraph.add(new Text("Question 2? ").setBold())
.add(new Text("Answer 2"))
.setMarginTop(0).setMarginBottom(0);
item.add(paragraph);
qaList.add(item);
document.add(qaList);
( StyledListItems測試testAddMultiStyledListItems
)
結果是
順便說一句,你之所以如此
得到這個(com.itextpdf.layout.element.Text@73df99a1)代替粗體文本
是那個
qaList.add(new ListItem(new Text("Question 1?").setBold() + "Answer 1"));
你實際上執行String
連接,
new Text("Question 1?").setBold() + "Answer 1"
調用new Text("Question 1?").setBold()
的結果對象的toString()
new Text("Question 1?").setBold()
和此String添加"Answer 1"
。
在iText 7中似乎沒有允許在ListItem中使用多種字體的功能。 我通過放棄列表解決了我的問題,而是為每個列表項使用了一個段落。
String dest = "destination.pdf"
PdfWriter writer = new PdfWriter(dest);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
Paragraph qaItem1 = new Paragraph().add(new Text("Question 1?").setBold()).add("Answer 1"));
Paragraph qaItem1 = new Paragraph().add(new Text("Question 1?").setBold()).add("Answer 1"));
document.add(qaItem1);
document.add(qaItem2);
document.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.