2017-02-28 48 views
0

我試圖自定義帶複選標記的列表符號。但它不起作用。解決方法我使用了Image。請參閱下面的示例代碼。Itext7 - 自定義帶複選標記的列表符號

.setListSymbol( 「\ U2022」) - 其工作正常 .setListSymbol( 「\ u2714」)或.setListSymbol( 「\ U2713」)不工作

回答

1

自定義列表符號就像任何其他文字。您必須指定正確的字體才能使其正常工作。默認情況下,iText與標準字體之一的Helvetica字體一起使用。 Helvetica包含U+2022,但不包含U+2714U+2713

您可以指定包含必要字形的列表的字體,並且該字體將用於列表符號中。包含您提到的字形的字體的一個示例是Arial Unicode

List list = new List(). 
     setFont(PdfFontFactory.createFont("C:/Windows/Fonts/arialuni.ttf", PdfEncodings.IDENTITY_H)). 
     setListSymbol("\u2713"); 

會用你想要的列表符號創建一個列表。

如果你不想改變整個列表的字體,但僅更改列表符號字體,你可以做到這一點通過以下方式:

PdfFont unicodeFont = PdfFontFactory.createFont("C:/Windows/Fonts/arialuni.ttf", PdfEncodings.IDENTITY_H); 
List list = new List(). 
     setListSymbol(new Text("\u2713").setFont(unicodeFont));