· 

Java – Cerate Lists in PDF

Grouping related items in a list makes the information easy to read. Spire.PDF for Java supports rendering HTML ordered list and unordered list in a PDF document (see this article), and it also provides the PdfSortedList class and PdfUnsortedList class that allow developers to create lists directly in PDF. In this article, I am going to introduce how to create a numbered list, a bullet list and a nested list by using Spire.PDF for Java. 

Installing Spire.Pdf.jar

If you create a Maven project, you can easily import the jar in your application using the following configurations. For non-Maven projects, download the jar file from this link and add it as a dependency in your application.

<repositories>
    <
repository>
        <
id>com.e-iceblue</id>
        <
name>e-iceblue</name>
        <
url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </
repository>
</
repositories>
<
dependencies>
    <
dependency>
        <
groupId> e-iceblue </groupId>
        <
artifactId>spire.pdf</artifactId>
        <
verson>4.1.2</version>
    </
dependency>
</
dependencies>

Example 1. Numbered List

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfSortedList;

public class CreateNumberList {


   
public static void main(String[] args) {

       
//Create a PdfDocument object
       
PdfDocument doc = new PdfDocument();

       
//Set the margin
       
PdfMargins margin = new PdfMargins(60,60,40,40);

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

       
//Specify the initial coordinate
       
float x = 0;
       
float y = 15;

       
//Draw title
       
PdfBrush brush = PdfBrushes.getBlack();
       
PdfFont titleFont = new PdfFont(PdfFontFamily.Times_Roman, 12f, PdfFontStyle.Bold);
       
String title = "Tips to learn programming faster:";
       
page.getCanvas().drawString(title, titleFont, brush, x, y);
        y = y + (
float) titleFont.measureString(title).getHeight();
        y = y +
5;

       
//Draw numbered list
       
PdfFont listFont = new PdfFont(PdfFontFamily.Times_Roman, 12f, PdfFontStyle.Regular);
       
String listContent = "Make your fundamentals clear\n"
               
+"Learn by doing, practicing and not just reading\n"
               
+"Share, teach, discuss and ask for help\n"
               
+"Use online resources";
       
PdfSortedList list = new PdfSortedList(listContent);
       
list.setFont(listFont);
       
list.setIndent(8);
       
list.setTextIndent(5);
       
list.setBrush(brush);
       
list.draw(page, 0, y);

       
//Save to file
       
doc.saveToFile("output/NumberedList.pdf"
);
    }
}

Example 2. Bullet List

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfUnorderedList;

public class CreateBulletList {

   
public static void main(String[] args) {

       
//Create a PdfDocument object
       
PdfDocument doc = new PdfDocument();

       
//Set the margin
       
PdfMargins margin = new PdfMargins(60,60,40,40);

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

       
//Specify the initial coordinate
       
float x = 0;
       
float y = 15;

       
//Draw title
       
PdfBrush brush = PdfBrushes.getBlack();
       
PdfFont titleFont = new PdfFont(PdfFontFamily.Times_Roman, 12f, PdfFontStyle.Bold);
       
String title = "Tips to learn programming faster:";
       
page.getCanvas().drawString(title, titleFont, brush, x, y);
        y = y + (
float) titleFont.measureString(title).getHeight();
        y = y +
5;

       
//Draw bullet list
       
PdfFont listFont = new PdfFont(PdfFontFamily.Times_Roman, 12f, PdfFontStyle.Regular);
       
String listContent = "Make your fundamentals clear\n"
               
+"Learn by doing, practicing and not just reading\n"
               
+"Share, teach, discuss and ask for help\n"
               
+"Use online resources";
       
PdfUnorderedList list = new PdfUnorderedList(listContent);
       
list.setFont(listFont);
       
list.setIndent(8);
       
list.setTextIndent(5);
       
list.setBrush(brush);
       
list.draw(page, 0, y);

       
//Save to file
       
doc.saveToFile("output/BulletList.pdf"
);
    }
}

Example 3. Multi-level List

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfNumberStyle;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfListItem;
import com.spire.pdf.lists.PdfOrderedMarker;
import com.spire.pdf.lists.PdfSortedList;

import java.awt.*;
import java.awt.geom.Point2D;

public class CreateMultiLevelList {

public static void main(String[] args) {

//Create a PdfDocument object
PdfDocument doc = new PdfDocument();


//Set the margin
PdfMargins margin = new PdfMargins(60, 60, 40, 40);


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


//Specify the initial coordinate
float x = 0;

float y = 15;

//Create two brushed
PdfBrush blackBrush = PdfBrushes.getBlack();

PdfBrush purpleBrush = PdfBrushes.getPurple();

//Create two fonts
PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new java.awt.Font("Times New Roman", Font.BOLD, 12));

PdfTrueTypeFont listFont = new PdfTrueTypeFont(new java.awt.Font("Calibri Light", Font.PLAIN, 12));

//Draw title
String title = "XHTML Tutorials/FAQs:";

page.getCanvas().drawString(title, titleFont, blackBrush, x, y);
y = y + (float) titleFont.measureString(title).getHeight();
y = y + 5;

//Create two ordered makers, which are used to define the number style of sorted list
PdfOrderedMarker marker1 = new PdfOrderedMarker(PdfNumberStyle.Upper_Roman, listFont);

PdfOrderedMarker marker2 = new PdfOrderedMarker(PdfNumberStyle.Numeric, listFont);

//Create a parent list
String parentListContent = "Introduction To XHTML 1.0\n"
+ "Introduction To Tag and Attribute Syntax";

PdfSortedList parentList = new PdfSortedList(parentListContent);
parentList.setFont(listFont);
parentList.setIndent(8);
parentList.setBrush(purpleBrush);
parentList.setMarker(marker1);

//Create a sub list - "subList_1"
String subListContent_1 = "What Is XHTML?\n"
+ "What Does an XHMTL Document Look Like?\n"
+ "What Is the Relation between XHTML and HTML?\n"
+ "What Is the Relation between XHTML and XML?";

PdfSortedList subList_1 = new PdfSortedList(subListContent_1);
subList_1.setIndent(16);
subList_1.setFont(listFont);
subList_1.setBrush(purpleBrush);
subList_1.setMarker(marker2);

//Create another sub list -"subList_2"
String subListContent_2 = "What Is an XHTML Element?\n"
+ "How To Enter Comments into XHTML Documents?\n"
+ "How To Write the Opening Tag of an XHTML Element?";

PdfSortedList subList_2 = new PdfSortedList(subListContent_2);
subList_2.setIndent(16);
subList_2.setFont(listFont);
subList_2.setBrush(purpleBrush);
subList_2.setMarker(marker2);

//Set subList_1 as sub list of the first item of parent list
PdfListItem item_1 = parentList.getItems().get(0);

item_1.setSubList(subList_1);

//Set subList_2 as sub list of the second item of parent list
PdfListItem item_2 = parentList.getItems().get(1);

item_2.setSubList(subList_2);

//Draw parent list
PdfTextLayout textLayout = new PdfTextLayout();

textLayout.setBreak(PdfLayoutBreakType.Fit_Page);
textLayout.setLayout(PdfLayoutType.Paginate);
parentList.draw(page,new Point2D.Float(x,y),textLayout);

//Save to file
doc.saveToFile("output/MultiLevelList.pdf");

}
}

 

Write a comment

Comments: 0