文檔中的設置有序或無序列表是一種反應內容上下級關系或者內容相同屬性的方式,與單純的文字敘述相比,它能有效增強文檔內容的條理性,突出重點。因此,本文將分享通過java編程在pdf文檔中設置有序或無序列表的方法。
使用工具:free spire.pdf for java v2.2.2(免費版)
jar文件導入:
step1:在java程序中新建一個文件夾可命名為lib。并將下載包中的jar文件(如下圖)復制到新建的文件夾下。
step2:復制文件后,添加到引用類庫:選中這個jar文件,點擊鼠標右鍵,選擇“build path” – “add to build path”。完成引用。
java代碼示例(供參考)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
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(); } } |
列表設置效果: