itextpdf生成列表基本用法

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。

在上一篇文章使用itextpdf生成表格基本用法中,介绍了生成表格的基本步骤和一些常用设置,同样的,在某些需求下,我们需要在pdf中展示列表,体现条理性,itextpdf同样支持,这个开源库支持很多种列表风格来满足大家需求,由于列表的每项风格基本一致,所以使用起来也非常简单,这里介绍几个常用的

1、有序列表

	/**
	 * 添加有序列表
	 * 
	 * @throws IOException
	 * @throws DocumentException
	 */
	public static void createOrderedListPdf() throws IOException, DocumentException {
		Document document = new Document();
		// 创建PdfWriter对象
		PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));
		// 打开文档
		document.open();
		// 添加有序列表
		List orderedList = new List(List.ORDERED);
		orderedList.add(new ListItem("Item 1"));
		orderedList.add(new ListItem("Item 2"));
		orderedList.add(new ListItem("Item 3"));
		document.add(orderedList);
		// low level
		PdfContentByte cb = writer.getDirectContent();
		cb.fill();
		cb.sanityCheck();
		// 关闭文档
		document.close();
	}

这个List是itext包下面的,表示一个列表,不是java常用的那个List,代码非常简单,就不作多的解释了,附上效果图:

itextpdf生成列表基本用法_第1张图片

2、无序列表

	/**
	 * 添加无序列表
	 * 
	 * @throws IOException
	 * @throws DocumentException
	 */
	public static void createUnorderedListPdf() throws IOException, DocumentException {
		Document document = new Document();
		// 创建PdfWriter对象
		PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));
		// 打开文档
		document.open();
		// 添加无序列表
		List unorderedList = new List(List.UNORDERED);
		unorderedList.add(new ListItem("Item 1"));
		unorderedList.add(new ListItem("Item 2"));
		unorderedList.add(new ListItem("Item 3"));
		document.add(unorderedList);
		// low level
		PdfContentByte cb = writer.getDirectContent();
		cb.fill();
		cb.sanityCheck();
		// 关闭文档
		document.close();
	}

 itextpdf生成列表基本用法_第2张图片

3、罗马数字列表(RomanList)

	/**
	 * 添加罗马数字列表
	 * 
	 * @throws IOException
	 * @throws DocumentException
	 */
	public static void createRomanListPdf() throws IOException, DocumentException {
		Document document = new Document();
		// 创建PdfWriter对象
		PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));
		// 打开文档
		document.open();
		// 添加roman列表
		RomanList romanList = new RomanList();
		romanList.add(new ListItem("Item 1"));
		romanList.add(new ListItem("Item 2"));
		romanList.add(new ListItem("Item 3"));
		document.add(romanList);
		// low level
		PdfContentByte cb = writer.getDirectContent();
		cb.fill();
		cb.sanityCheck();
		// 关闭文档
		document.close();
	}

itextpdf生成列表基本用法_第3张图片

4、希腊字母列表(GreekList) 

	/**
	 * 添加希腊字母列表
	 * 
	 * @throws IOException
	 * @throws DocumentException
	 */
	public static void createGreekListPdf() throws IOException, DocumentException {
		Document document = new Document();
		// 创建PdfWriter对象
		PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));
		// 打开文档
		document.open();
		// Add Greek list
		GreekList greekList = new GreekList();
		greekList.add(new ListItem("Item 1"));
		greekList.add(new ListItem("Item 2"));
		greekList.add(new ListItem("Item 3"));
		document.add(greekList);
		// low level
		PdfContentByte cb = writer.getDirectContent();
		cb.fill();
		cb.sanityCheck();
		// 关闭文档
		document.close();
	}

itextpdf生成列表基本用法_第4张图片

5、ZapfDingbats列表

	/**
	 * 创建ZapfDingbats列表
	 * 
	 * @throws IOException
	 * @throws DocumentException
	 */
	public static void createZapfDingbatsListPdf() throws IOException, DocumentException {
		Document document = new Document();
		// 创建PdfWriter对象
		PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));
		// 打开文档
		document.open();
		// ZapfDingbatsList List Example
		ZapfDingbatsList zapfDingbatsList = new ZapfDingbatsList(43, 30);
		zapfDingbatsList.add(new ListItem("Item 1"));
		zapfDingbatsList.add(new ListItem("Item 2"));
		zapfDingbatsList.add(new ListItem("Item 3"));
		document.add(zapfDingbatsList);
		// low level
		PdfContentByte cb = writer.getDirectContent();
		cb.fill();
		cb.sanityCheck();
		// 关闭文档
		document.close();
	}

 itextpdf生成列表基本用法_第5张图片

6、列表嵌套

	/**
	 * 创建嵌套列表
	 * 
	 * @throws IOException
	 * @throws DocumentException
	 */
	public static void createNestedListPdf() throws IOException, DocumentException {
		Document document = new Document();
		// 创建PdfWriter对象
		PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));
		// 打开文档
		document.open();
		// List and Sublist Examples
		List nestedList = new List(List.UNORDERED);
		nestedList.add(new ListItem("Item 1"));
		// 子列表
		List sublist = new List(true, false, 30);
		sublist.setListSymbol(new Chunk("", FontFactory.getFont(FontFactory.HELVETICA, 6)));
		sublist.add("A");
		sublist.add("B");
		nestedList.add(sublist);
		nestedList.add(new ListItem("Item 2"));
		// 子列表
		sublist = new List(true, false, 30);
		sublist.setListSymbol(new Chunk("", FontFactory.getFont(FontFactory.HELVETICA, 6)));
		sublist.add("C");
		sublist.add("D");
		nestedList.add(sublist);
		document.add(nestedList);
		// low level
		PdfContentByte cb = writer.getDirectContent();
		cb.fill();
		cb.sanityCheck();
		// 关闭文档
		document.close();
	}

 itextpdf生成列表基本用法_第6张图片

上面列举的都是比较常用的列表,在一般项目已经够使用了 ,更多扩展功能请参考itextpdf官网API。

 

你可能感兴趣的:(JAVA)