文档中的设置有序或无序列表是一种反应内容上下级关系或者内容相同属性的方式,与单纯的文字叙述相比,它能有效增强文档内容的条理性,突出重点。因此,本文将分享通过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(); } }
列表添加效果:
(本文完)
相关推荐
在Java编程中,生成PDF文档时,有序和无序列表的设置对于组织信息和呈现层次结构至关重要。这不仅使文档更易读,也提升了专业性。以下是如何使用Free Spire.PDF for Java库来实现这一功能的详细步骤: 首先,我们...
《data-structures-Java.pdf》这本教材深入浅出地介绍了算法复杂性的概念及其分析方法。 ##### 1.1 渐进复杂性分析和大O记号 - **渐进复杂性分析**:这是一种用于评估算法性能的方法,主要关注随着输入数据规模的...
`Collection`接口的实现包括`List`(有序且可重复元素)和`Set`(无序且不允许重复元素)。`List`接口的代表实现有`ArrayList`和`LinkedList`,`Set`接口的典型实现有`HashSet`和`TreeSet`。 6. Java多线程:Java...
- **`com.lowagie.text.List`**:表示列表,可以是有序或无序的。例如: ```java List list = new List(false, 10, List.UNORDERED); list.add(new ListItem("Item 1")); list.add(new ListItem("Item 2")); ...
1. List 和 Set 的区别:List 是有序的集合,Set 是无序的集合。 2. ArrayList 和 LinkedList 的区别:ArrayList 是基于数组的实现,LinkedList 是基于链表的实现。 3. HashMap 和 HashTable 的区别:HashMap 是非...
* set():用于设置列表中的元素。 MAP Map 是一种特殊的容器接口,用于存储键值对数据。Map 接口的主要方法有: * put():用于添加键值对到 Map 中。 * remove():用于从 Map 中删除键值对。 * get():用于获取 ...
答:List 是一个有序的集合,Set 是一个无序的集合,Map 是一个键值对的集合。 12. Java 中的 ArrayList 和 LinkedList 的区别是什么? 答:ArrayList 是基于数组实现的,LinkedList 是基于链表实现的。 Java 输入...
* List:一种特殊的 Collection,用于存储有序的对象,例如 ArrayList、LinkedList 等。 * Set:一种特殊的 Collection,用于存储无序的对象,例如 HashSet、TreeSet 等。 * Map:用于存储键值对的容器,例如 ...
- **表格与列表**:` PdfPTable`用于创建表格,`List`可以创建有序或无序列表。 - **图像与图形**:通过`Image.getInstance()`方法添加图片,`ColumnText`类支持在文档中绘制图形。 - **链接与书签**:`PdfAction...
List接口存储有序的元素,允许重复;Set接口存储无序且不允许重复的元素;Queue接口提供了先进先出(FIFO)的数据结构;而Map接口则用于存储键值对,键是唯一的。 在Java中,ArrayList和LinkedList是List接口的主要...
- **NIO的非阻塞**:通过设置通道的阻塞模式为非阻塞,从而实现非阻塞IO操作。 - **Channel**:用于源节点和目标节点之间数据传输的管道。 - **Buffer**:存放数据的容器,支持多种数据类型的读写操作。 - **...
Java的集合框架包括多种数据结构,如ArrayList、Vector、LinkedList提供了不同特性的动态数组,Stack实现栈操作,HashSet、TreeSet、LinkedHashSet提供无序、有序和保持插入顺序的集合,PriorityQueue支持优先级排序...
5. **表格和列表**:`Table`类用于创建表格,可以设置列宽、边框等属性,`List`类则用于创建无序或有序列表。 6. **交互式PDF**:iText还可以创建交互式PDF,如添加书签、超链接、表单字段等。例如,`AcrobatReader...
《Core Java.JAVA核心技术(中文版)》是学习Java编程的重要参考资料,主要涵盖了Java语言的基础以及进阶知识。这本书深入浅出地讲解了Java的核心概念和技术,为读者提供了全面而细致的学习路径。以下是对该书内容的...
7. **表格与列表**:说明如何创建和填充表格,以及如何添加无序和有序列表。 8. **链接与动作**:解释如何在PDF中添加超链接,以及定义点击链接后执行的动作,如跳转至其他页面或启动应用程序。 9. **表单处理**:...
Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构允许程序员以高效的方式处理大量数据。 ##### 1.1 容器简介 容器是Java集合框架的基础概念,它们用于存储对象的集合。容器分为...
在Java中重写(Override)是子类对父类方法的重新实现,而重载(Overload)是指同一个类中方法名相同但参数列表不同的方法。封装(Encapsulation)是面向对象编程(OOP)的基本原则之一,通过访问修饰符隐藏类的属性...
- **列表 (List)**:可以创建有序或无序列表。 - **超链接 (Hyperlink)**:允许在文档中添加链接至其他文档或网页。 通过这些功能,可以创建具有丰富格式和样式的 PDF 文档,满足不同场景的需求。 综上所述,iText...
:List是有序的,Set是无序的,Map是键值对的。 21. HashMap和HashTable有什么区别?:HashMap是非同步的,HashTable是同步的。 22. 如何决定使用HashMap还是TreeMap?:HashMap是无序的,TreeMap是有序的。 23. 说...
14. **集合框架**:Java集合框架包括List(有序、允许重复元素,如ArrayList和LinkedList), Set(无序、不允许重复元素,如HashSet和TreeSet), 和Map(键值对,如HashMap和TreeMap)等接口和实现类。 15. **多...