簡體   English   中英

如何使用iText List將具有不同權重的文本添加到單個ListItem

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM