1. 程式人生 > >itext7 List序號 有序列表 解決中文不顯示

itext7 List序號 有序列表 解決中文不顯示

exc [] false style symbol 顯示 font class pre

註意:1.itextpdf的版本為7.0.5(7.1.4的版本過高,用本示例會報錯(比如7.0.5是這個包是com.itextpdf.kernel.color.Color,在7.1.4會升級為com.itextpdf.kernel.colors.Color); 7.0.0的版本低, 也會報錯。)

2.jdk要在1.7及以上

3.maven版本也不要太低了(推薦3.3)

4.本文根據官方例子(https://itextpdf.com/en/resources/examples/itext-7/page-events-watermarking)改編,支持文字中文

package com.test;

import
java.io.File; import com.itextpdf.kernel.events.PdfDocumentEvent; import com.itextpdf.kernel.font.PdfFont; import com.itextpdf.kernel.font.PdfFontFactory; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.List;
import com.itextpdf.layout.element.ListItem; import com.itextpdf.layout.property.ListNumberingType; /** * pdf List 有序列表 * @author 鯤鵬展翅 * @date 2019年1月22日 下午3:08:14 * @desc */ public class Pdf { public static final String DEST = "E:\\bbb\\有序列表.pdf"; public static PdfFont watermark = null;
public static void main(String[] args) throws Exception { watermark = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false);//解決中文不顯示 // itext7需要jdk7及以上 jdk6就用itext5 File dest = new File(DEST); dest.getParentFile().mkdirs(); createPdf(DEST); } public static void createPdf(String dest) throws Exception { PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); pdf.addEventHandler(PdfDocumentEvent.END_PAGE, new MyEventHandler()); Document document = new Document(pdf); List list = new List().setSymbolIndent(9) .setListSymbol(ListNumberingType.DECIMAL)//有序列表 //.setListSymbol("\u2022")//自定義無序列表 .setFont(watermark); list.add(new ListItem("第一條。")) .add(new ListItem("第二條。")); document.add(list); document.close(); } }

itext7 List序號 有序列表 解決中文不顯示