itext7 List序号 有序列表 解决中文不显示

注意: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();
    }

}

原文地址:https://www.cnblogs.com/zjk1/p/10304028.html

时间: 2024-11-09 05:16:23

itext7 List序号 有序列表 解决中文不显示的相关文章

Visual Studio Code 1.44 解决中文代码显示乱码问题(小白图文教程)

现今主流的计算机中文字符编码方案是:GBK和UTF-8. 不同编码方案使用不同的字符集,GBK字符集在中文字符长度和字符数量上存在绝对优势,但对国外字符并不支持.所以,完全面向国内的程序/网页使用的是GBK字符集的GBK编码,而面向国外或面向国内兼国外的程序/网页使用的是Unicode字符集的UTF-8编码. 如果在使用Visual Studio Code 1.44打开源码文件时,出现乱码,那很有可能是因为该文件字符编码是GBK.(没错,Visual Studio Code 1.44默认的字符编

Zabbix监控(十一):解决中文字体显示乱码问题

问题: 在WEB端上中文会显示为问号,当创建一个GRAPH,名字中带中文时会报错: (latin1_swedish_ci,IMPLICIT)  and (utf8_general_ci,COERCIBLE) for operation '=' 意思是使用了两种不同的字符集(latin1和utf8) 1.方法一:网上找到最多也就是添加字体文件方法 将windows系统中的字体文件(控制面板->字体->楷体simkai.ttf)拷贝到/var/www/html/zabbix/fonts/ 修改服务

Itext html转PDF,解决中文不显示与样式问题

网上有好多的代码实例,好多都说可以解决中文以及样式问题,然而并不能,好不容易找到一篇,可以解决的,真心不容易,赶紧贴出来,备份一下. import com.itextpdf.text.pdf.BaseFont; import org.xhtmlrenderer.pdf.ITextFontResolver; import org.xhtmlrenderer.pdf.ITextRenderer; import java.io.*; /** * 文件格式转换工具类 * * @author lbj *

前端学习 -- Css -- 有序列表和无序列表

列表就相当于去超市购物时的那个购物清单, 在HTML也可以创建列表,在网页中一共有三种列表: 1.无序列表 2.有序列表 3.定义列表 无序列表 - 使用ul标签来创建一个无序列表 - 使用li在ul中创建一个一个的列表项, 一个li就是一个列表项 通过type属性可以修改无序列表的项目符号 可选值: disc,默认值,实心的圆点 square,实心的方块 circle,空心的圆 注意:默认的项目符号我们一般都不使用!! 如果需要设置项目符号,则可以采用为li设置背景图片的方式来设置 ul和li

自学html-four(css初始化及html语义标签 -> h标签 p标签 img标签 有序列表 无序列表 表格 超链接)

一.css初始化 现在我们来做一个简单的测试,测试步骤如下: 1.编写代码如下: 2.把改程序用不同的浏览器打开我们会发现同一份代码在不同的浏览器中的显示会有略微的差别: 360浏览器下显示效果图: 火狐浏览器下显示的效果图: 同一份代码在不同浏览器显示的效果存在差异的原因是:各浏览器对各元素的margin,border,font-size等的初始设置略有不同 解决方法:通过css强制让所有元素的属性值都一样 这里提供一段雅虎工程师css初始化代码,直接拷贝到css位置就可以了,body,div

html中有序列表标签ol,li的高级应用

本文主要介绍html中有序列表标签ol,li的高级应用, 在网页设计时我们设计有序列表内容时,经常会在每个ITEM前手工加上一个数值,或是由程序加上这个数值. 而如果使用有序列表标签ol和li,则不需要这么麻烦,根本不用自行去填写序数,当单层列表的时候这种特性似乎并不明显,而当使用多层的时候其特性就很明显了. 一般的标签ol和li有序列表应用代码如下: <ol> <li>列表内容一</li> <li>列表内容二</li> <li>列表

C#高级编程五十二天----有序列表

有序列表 如果需要基于对所有集合排序,就可以使用SortedList<TKey,TValue>类.这个类按照键给元素排序.这个集合中的值和键都可以使用任意类型. 下面的例子创建了一个有序列表,其中键和值类型都是string.默认的构造函数创建了一个空列表,再用Add()方法添加书.使用重载的构造函数.可以定义列表的容量,传递实现了IComparer<TKey>接口的对象,该接口用于给列表中的元素排序. 使用Add(Tkey,Tvalue)方法,第一个参数是键,第二个参数是值.除了使

C#编程(五十二)----------有序列表

有序列表 如果需要基于对所有集合排序,就可以使用SortedList<TKey,TValue>类.这个类按照键给元素排序.这个集合中的值和键都可以使用任意类型. 下面的例子创建了一个有序列表,其中键和值类型都是string.默认的构造函数创建了一个空列表,再用Add()方法添加书.使用重载的构造函数.可以定义列表的容量,传递实现了IComparer<TKey>接口的对象,该接口用于给列表中的元素排序. 使用Add(Tkey,Tvalue)方法,第一个参数是键,第二个参数是值.除了使

debian 解决中文乱码以及中文输入法的问题

Debian 6解决中文乱码 解决办法:打开终端,切换至root帐号. 执行以下命令: apt-get install ttf-wqy-zenhei(安装字体) apt-get install ibus ibus-gtk ibus-pinyin(安装输入法) ------------------------- 设置本地化 Locale如果我们在安装 Debian 系统时,语言选择了英语呢?进入系统后看到全是英文,是不是有点郁闷.那么我们怎样设置成简体中文呢?#如果你安装系统时选择的就是简体中文,