itext设置字体间距_Java使用iText生成pdf

iText 是一个非常著名的能够快速产生 PDF 文件的 Java 类库。支持文本,表格,图形的操作,可以方便的跟 Servlet 进行结合

pom.xml

<dependency>        <groupId>com.itextpdfgroupId>        <artifactId>itextpdfartifactId>       <version>5.5.13version>dependency><dependency>        <groupId>com.itextpdfgroupId>        <artifactId>itext-asianartifactId>        <version>5.2.0version>dependency>

Test

快速创建一个pdf

// 创建一个Document对象(pdf文档) A4纸张大小Document document = new Document(PageSize.A4);// 建立一个书写器(Writer)与document对象关联PdfWriter.getInstance(document, new FileOutputStream("D:\\Test.pdf"));// 打开文档document.open();// 向文档中输入一个内容 document.add(new Paragraph("Hello World"));// 关闭文档document.close();

15eac33ef11c4a24f8a35748acb07d41.png

PDF文档中添加内容

全局字体设置

/*** 定义全局的字体静态变量 */private static Font titlefont;private static Font headfont;private static Font keyfont;private static Font textfont;/** * 最大宽度 */private static int maxWidth = 520;/* 静态代码块*/static {        try {                // 不同字体(这里定义为同一种字体:包含不同字号、不同style)                BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);                titlefont = new Font(bfChinese, 16, Font.BOLD);                headfont = new Font(bfChinese, 14, Font.BOLD);                keyfont = new Font(bfChinese, 10, Font.BOLD);                textfont = new Font(bfChinese, 10, Font.NORMAL);        } catch (Exception e) {                e.printStackTrace();        }}

段落

// 段落Paragraph paragraph = new Paragraph("Hello I Text 5", titlefont);//设置文字居中 0靠左 1,居中 2,靠右paragraph.setAlignment(1);//设置左缩进paragraph.setIndentationLeft(12);//设置右缩进paragraph.setIndentationRight(12);//设置首行缩进paragraph.setFirstLineIndent(24);//行间距paragraph.setLeading(20f);//设置段落上空白paragraph.setSpacingBefore(5f);//设置段落下空白paragraph.setSpacingAfter(10f);

直线/点线

// 直线Paragraph p1 = new Paragraph();p1.add(new Chunk(new LineSeparator()));// 点线Paragraph p2 = new Paragraph();p2.add(new Chunk(new DottedLineSeparator()));

超链接

// 超链接Anchor anchor = new Anchor(new Paragraph("超链接", titlefont));anchor.setReference("www.baidu.com");

图片

// 添加图片Image image = Image.getInstance("http://devb2b.hosjoy.com/img/hosjoy_logo48@2x.595a425a.png");// 位置image.setAlignment(Image.ALIGN_CENTER);// 依照比例 缩放image.scalePercent(20);

表格PdfPTable

// 创建一个包含5列的表格PdfPTable table = new PdfPTable(5);// 创建一个宽度比例表格PdfPTable table = new PdfPTable(new float[]{
    10, 12, 12, 10, 10});// 表格最大像素table.setTotalWidth(maxWidth);// 锁定宽度table.setLockedWidth(true);// 水平居中table.setHorizontalAlignment(Element.ALIGN_CENTER);// 表格边框 配合 单元格设置table.getDefaultCell().setBorder(1);// 创建单元格PdfPCell cell = new PdfPCell();// 垂直对齐设置cell.setVerticalAlignment(Element.ALIGN_MIDDLE);// 水平对齐设置cell.setHorizontalAlignment();// 合并单元格cell.setColspan(1);// 合并单元格cell.setRowspan(1);// 内容cell.setPhrase(new Phrase(value, font));// 边框设置cell.setBorder(Rectangle.NO_BORDER);// 背景颜色设置cell.setBackgroundColor(baseColor);// 将单元格加入表格table.addCell(cell)    // 表格添加图片Image image = Image.getInstance("http://devb2b.hosjoy.com/img/hosjoy_logo48@2x.595a425a.png");image.setAlignment(Image.ALIGN_LEFT);Phrase listO
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值