1
+ using Syncfusion . Drawing ;
2
+ using Syncfusion . Pdf ;
3
+ using Syncfusion . Pdf . Graphics ;
4
+ using Syncfusion . Pdf . Lists ;
5
+
6
+ // Create a new PDF document
7
+ PdfDocument document = new PdfDocument ( ) ;
8
+
9
+ // Set the document title
10
+ document . DocumentInformation . Title = "Nested List" ;
11
+
12
+ // Add a new page to the PDF
13
+ PdfPage page = document . Pages . Add ( ) ;
14
+ PdfGraphics graphics = page . Graphics ;
15
+ SizeF size = page . Graphics . ClientSize ;
16
+
17
+ //Get stream from the font file.
18
+ FileStream fontStream = new FileStream ( Path . GetFullPath ( @"Data/Arial.ttf" ) , FileMode . Open , FileAccess . Read ) ;
19
+ PdfFont font = new PdfTrueTypeFont ( fontStream , 14 ) ;
20
+
21
+ // Draw the title on the PDF
22
+ graphics . DrawString ( "Nested Ordered List:" , font , PdfBrushes . Blue , new PointF ( 10 , 0 ) ) ;
23
+
24
+ // Create a string format for line spacing of list items
25
+ PdfStringFormat format = new PdfStringFormat ( ) ;
26
+ format . LineSpacing = 10f ;
27
+
28
+ // Create the main list structure element with a List tag for accessibility
29
+ PdfStructureElement mainListElement = new PdfStructureElement ( PdfTagType . List ) ;
30
+
31
+ // Initialize the main ordered list
32
+ PdfOrderedList mainList = new PdfOrderedList
33
+ {
34
+ PdfTag = mainListElement ,
35
+ Marker = { Brush = PdfBrushes . Black } ,
36
+ Indent = 20 ,
37
+ Font = font ,
38
+ StringFormat = format
39
+ } ;
40
+
41
+ // Add items to the main list and tag each item for accessibility
42
+ string [ ] mainItems = { "Essential Tools" , "Essential PDF" , "Essential XlsIO" } ;
43
+ for ( int i = 0 ; i < mainItems . Length ; i ++ )
44
+ {
45
+ mainList . Items . Add ( mainItems [ i ] ) ;
46
+ mainList . Items [ i ] . PdfTag = new PdfStructureElement ( PdfTagType . ListItem ) ;
47
+ }
48
+
49
+ // Create a sublist with accessibility tags
50
+ PdfStructureElement subListElement = new PdfStructureElement ( PdfTagType . List ) ;
51
+ PdfOrderedList subList = new PdfOrderedList
52
+ {
53
+ PdfTag = subListElement ,
54
+ Marker = { Brush = PdfBrushes . Black } ,
55
+ Indent = 20 ,
56
+ Font = font ,
57
+ StringFormat = format
58
+ } ;
59
+
60
+ // Add items to the sublist and tag each item for accessibility
61
+ string [ ] subItems = { "Create PDF" , "Modify PDF" , "Secure PDF" , "Compress PDF" } ;
62
+ for ( int i = 0 ; i < subItems . Length ; i ++ )
63
+ {
64
+ subList . Items . Add ( subItems [ i ] ) ;
65
+ subList . Items [ i ] . PdfTag = new PdfStructureElement ( PdfTagType . ListItem ) ;
66
+ }
67
+
68
+ // Nest the sublist under the second item of the main list
69
+ mainList . Items [ 1 ] . SubList = subList ;
70
+
71
+ // Draw the main list, which includes the nested sublist, on the PDF
72
+ mainList . Draw ( page , new RectangleF ( 0 , 30 , size . Width , size . Height ) ) ;
73
+
74
+ //Create file stream.
75
+ using ( FileStream outputFileStream = new FileStream ( Path . GetFullPath ( @"Output/Output.pdf" ) , FileMode . Create , FileAccess . ReadWrite ) )
76
+ {
77
+ //Save the PDF document to file stream.
78
+ document . Save ( outputFileStream ) ;
79
+ }
80
+
81
+ //Close the document.
82
+ document . Close ( true ) ;
0 commit comments