Java设置PDF有序和无序列表的知识点总结

 更新时间:2019年03月12日 08:31:06   投稿:laozhang  
在本篇文章中小编给大家整理了关于Java设置PDF有序和无序列表的知识点,需要的朋友们参考下。

文档中的设置有序或无序列表是一种反应内容上下级关系或者内容相同属性的方式,与单纯的文字叙述相比,它能有效增强文档内容的条理性,突出重点。因此,本文将分享通过Java编程在PDF文档中设置有序或无序列表的方法。

使用工具:Free Spire.PDF for Java V2.2.2(免费版)

Jar文件导入:

Step1:在Java程序中新建一个文件夹可命名为Lib。并将下载包中的jar文件(如下图)复制到新建的文件夹下。

Step2:复制文件后,添加到引用类库:选中这个jar文件,点击鼠标右键,选择“Build Path” – “Add to Build Path”。完成引用。

Java代码示例(供参考)

import com.spire.pdf.*;

import com.spire.pdf.graphics.*;

import com.spire.pdf.lists.*;

import java.awt.*;

import java.awt.geom.*;

 

public class list {

  public static void main(String[] args) {

  //创建PDFDocument对象

  PdfDocument doc = new PdfDocument();

 

  //设置边距

  PdfUnitConvertor unitCvtr = new PdfUnitConvertor();

  PdfMargins margin = new PdfMargins();

  margin.setTop(unitCvtr.convertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));

  margin.setBottom(margin.getTop());

  margin.setLeft(unitCvtr.convertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));

  margin.setRight(margin.getLeft());

 

  //添加新的一页

  PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);

   //绘制标题

  float y = 10;

  PdfBrush brush1 = PdfBrushes.getBlack();

  PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.BOLD, 16), true);

  PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Center);

  page.getCanvas().drawString("部门活动采购清单", font1, brush1,  page.getCanvas().getClientSize().getWidth() / 2, y, format1);

  y = y + (float) font1.measureString("活动采购清单", format1).getHeight();

  y = y + 5;

  //设置列表格式和列表文字

  Rectangle2D rctg = new Rectangle2D.Float();

  rctg.setFrame(new Point(0, 0), page.getCanvas().getClientSize());

  PdfLinearGradientBrush brush = new PdfLinearGradientBrush(rctg, new PdfRGBColor(new PdfRGBColor(new Color(0,0,128))), new PdfRGBColor(new Color(255,69,0)), PdfLinearGradientMode.Vertical);

  PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.BOLD, 12), true);

  String formatted1 = "行政部\n开发部\n销售部\n后勤处\n保卫处";

  String formatted2 = "饮料\n调味品\n糖果\n奶制品\n肉类\n蔬菜\n海鲜";

  //画无序列表

  PdfListBase list = new PdfUnorderedList(formatted2);

  list.setFont(font);

  list.setIndent(8);

  list.setTextIndent(5);

  list.setBrush(brush);

  PdfLayoutResult result = list.draw(page, 0, y);

  y = (float) (result.getBounds().getHeight()+result.getBounds().getY());

  //画有序列表

  PdfSortedList sortedList = new PdfSortedList(formatted1);

  sortedList.setFont(font);

  sortedList.setIndent(8);

  sortedList.setTextIndent(5);

  sortedList.setBrush(brush);

  sortedList.draw(page, 0, y);

 

  //保存文档 

  doc.saveToFile("list.pdf");

  doc.close();

 }

}

列表设置效果:

相关文章

  • spring cloud gateway整合sentinel实现网关限流

    spring cloud gateway整合sentinel实现网关限流

    这篇文章主要介绍了spring cloud gateway整合sentinel实现网关限流,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Springboot @Value注入boolean设置默认值方式

    Springboot @Value注入boolean设置默认值方式

    这篇文章主要介绍了Springboot @Value注入boolean设置默认值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java中@Autowired与@Resource注解的区别详解

    Java中@Autowired与@Resource注解的区别详解

    这篇文章主要介绍了Java中@Autowired与@Resource注解的区别详解,@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了,@Resource有两个属性是比较重要的,需要的朋友可以参考下
    2023-11-11
  • springcloud组件技术分享(推荐)

    springcloud组件技术分享(推荐)

    Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。这篇文章主要介绍了springcloud组件技术分享,需要的朋友可以参考下
    2020-10-10
  • Java分布式锁理论(redis、zookeeper))案例详解

    Java分布式锁理论(redis、zookeeper))案例详解

    zookeeper有个节点路径的概念,节点路径不能重复,保证了唯一性,这篇文章给大家介绍Java分布式锁理论(redis、zookeeper) 案例详解,感兴趣的朋友跟随小编一起看看吧
    2024-01-01
  • SpringBoot项目如何连接MySQL8.0数据库

    SpringBoot项目如何连接MySQL8.0数据库

    这篇文章主要介绍了SpringBoot项目如何连接MySQL8.0数据库,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 解析Java多线程之常见锁策略与CAS中的ABA问题

    解析Java多线程之常见锁策略与CAS中的ABA问题

    本篇文章介绍了常见的锁策略,并说明了synchronized关键字加的锁类型不是单一一种锁类型的,根据可重入锁与非可重入锁引出了死锁的概念与死锁条件,最后介绍了CAS指令以及CAS锁产生的ABA问题及其解决方案,需要的朋友可以参考下
    2022-06-06
  • 解析电子邮件的基本概念及JavaMail API邮件功能使用

    解析电子邮件的基本概念及JavaMail API邮件功能使用

    这篇文章主要介绍了电子邮件的基本概念及JavaMail API邮件功能使用,包括用Java来发送邮件的示例,需要的朋友可以参考下
    2016-02-02
  • java使用淘宝API读写json实现手机归属地查询功能代码

    java使用淘宝API读写json实现手机归属地查询功能代码

    本文介绍java使用淘宝API读写json实现手机归属地查询功能,代码简单,大家可以参考使用
    2013-11-11
  • 使用springmvc临时不使用视图解析器的自动添加前后缀

    使用springmvc临时不使用视图解析器的自动添加前后缀

    这篇文章主要介绍了使用springmvc临时不使用视图解析器的自动添加前后缀,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09

最新评论