Java - PDF 문서에서 목록을 만드는 방법

34793 단어 documentjavalistpdf
관련 항목을 목록으로 그룹화하면 정보를 쉽게 읽을 수 있습니다. 세 가지 매우 일반적인 목록 유형이 있습니다. 순서가 지정된 목록(예: 번호 매기기 목록), 순서가 지정되지 않은 목록(예: 글머리 기호 목록) 및 중첩 목록입니다. 이 기사에서는 Free Spire.PDF for Java을 사용하여 Java에서 번호 매기기 목록, 글머리 기호 목록 및 다단계 목록을 만드는 방법을 소개합니다.
  • Create a numbered list
  • Create a bulleted list
  • Create a nested list

  • Spire.Pdf.jar를 종속성으로 추가



    Maven 프로젝트에서 작업하는 경우 다음을 사용하여 pom.xml 파일에 종속성을 포함할 수 있습니다.

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


    maven을 사용하지 않는 경우 this location 에서 제공되는 zip 파일에서 필요한 jar 파일을 찾을 수 있습니다. 이 자습서에 제공된 샘플 코드를 실행하려면 모든 jar 파일을 애플리케이션 lib 폴더에 포함합니다.

    전제 지식



    Java용 Spire.PDF는 PDF 문서에서 정렬된 목록 및 정렬되지 않은 목록과 함께 작동하도록 PdfSortedList 클래스 및 PdfUnsortedList 클래스를 제공합니다. 다음 표에는 이 자습서와 관련된 중요한 클래스, 메서드 및 속성이 나열되어 있습니다.



    번호 매기기 목록 만들기



    번호 매기기 목록을 만드는 단계는 다음과 같습니다.
  • PDF 문서를 만듭니다.
  • 브러시 개체와 글꼴 개체를 만듭니다.
  • 목록 내용, 글꼴, 들여쓰기 및 브러시를 지정하여 PdfSortedList 클래스의 인스턴스를 만듭니다.
  • 페이지의 지정된 위치에 목록을 그립니다.
  • 문서를 PDF 파일로 저장합니다.
    다음은 Java용 Spire.PDF를 사용하여 PDF로 번호 매기기 목록을 만드는 코드 스니펫입니다.

  • 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 CreateNumberedList {
        public static void main(String[] args) {
    
            //Create a PdfDocument object
            PdfDocument doc = new PdfDocument();
    
            //Set the margins
            PdfMargins margins = new PdfMargins(30);
    
            //Add a page
            PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margins);
    
            //Specify the initial coordinate
            float x = 0;
            float y = 0;
    
            //Draw title
            PdfBrush brush = PdfBrushes.getBlack();
            PdfFont titleFont = new PdfFont(PdfFontFamily.Times_Roman, 12f, PdfFontStyle.Bold);
            String title = "4 Tips to Learn Java Easily";
            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 = "Start with basics\n"
                    +"Make some notes\n"
                    +"Try with small projects\n"
                    +"Practice code daily";
            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");
        }
    }
    




    글머리 기호 목록 만들기



    글머리 기호 목록을 만드는 단계는 다음과 같습니다.
  • PDF 문서를 만듭니다.
  • 브러시 개체와 글꼴 개체를 만듭니다.
  • 목록 내용, 글꼴, 들여쓰기 및 브러시를 지정하여 PdfUnsortedList 클래스의 인스턴스를 만듭니다.
  • 페이지의 지정된 위치에 목록을 그립니다.
  • 문서를 PDF 파일로 저장합니다.
    다음 코드 예제는 Java용 Spire.PDF를 사용하여 글머리 기호 목록을 만드는 방법을 보여줍니다.

  • 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 CreateBulletedList {
    
        public static void main(String[] args) {
    
            //Create a PdfDocument object
            PdfDocument doc = new PdfDocument();
    
            //Set the margin
            PdfMargins margin = new PdfMargins(30);
    
            //Add a page
            PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);
    
            //Specify the initial coordinate
            float x = 0;
            float y = 0;
    
            //Draw title
            PdfBrush brush = PdfBrushes.getBlack();
            PdfFont titleFont = new PdfFont(PdfFontFamily.Times_Roman, 12f, PdfFontStyle.Bold);
            String title = "Worst Fruit for Weight Loss:";
            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 = "Bananas\n"
                    +"Grapes\n"
                    +"Pomegranate\n"
                    +"Apples\n"
                    +"Blueberries";
            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/BulletedList.pdf");
        }
    }
    




    중첩 목록 만들기



    다단계 목록을 만드는 주요 단계는 다음과 같습니다.
  • PDF 문서를 만듭니다.
  • 상위 목록을 만듭니다.
  • 두 개의 하위 목록을 만들고 이를 상위 목록의 두 개별 항목에 하위 목록으로 추가합니다.
  • 하위 하위 목록을 만들어 하위 목록의 항목에 추가합니다.
  • 문서를 PDF 파일로 저장합니다.
    다음은 Java용 Spire.PDF를 사용하여 PDF 문서에서 중첩 목록을 만드는 코드 예제를 제공합니다.

  • 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 margins
            PdfMargins margin = new PdfMargins(30);
    
            //Add a page
            PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);
    
            //Specify the initial coordinate
            float x = 0;
            float y = 0;
    
            //Create two brushes
            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:";
            String title = "Multi Level List:";
            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.Numeric, listFont);
            PdfOrderedMarker marker2 = new PdfOrderedMarker(PdfNumberStyle.Numeric, listFont);
    
            //Create a parent list
            String parentListContent = "Parent Item 1\n"
                    + "Parent Item 2";
            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 = "Child Item 1-1\n"
                    + "Child Item 1-2";
            PdfSortedList subList_1 = new PdfSortedList(subListContent_1);
            subList_1.setIndent(16);
            subList_1.setFont(listFont);
            subList_1.setBrush(purpleBrush);
            subList_1.setMarker(marker2);
            subList_1.setMarkerHierarchy(true);
    
            //Create another sub list -"subList_2"
            String subListContent_2 = "Child Item 2-1\n"
                    + "Child Item 2-2\n"
                    + "Child Item 2-3";
            PdfSortedList subList_2 = new PdfSortedList(subListContent_2);
            subList_2.setIndent(16);
            subList_2.setFont(listFont);
            subList_2.setBrush(purpleBrush);
            subList_2.setMarker(marker2);
            subList_2.setMarkerHierarchy(true);
    
            //Create a sub-sub list - "subSubList"
            String subSubListContent = "Child Item 1-1-1\n"
                    + "Child Item 1-1-2";
            PdfSortedList subSubList = new PdfSortedList(subSubListContent);
            subSubList.setIndent(24);
            subSubList.setFont(listFont);
            subSubList.setBrush(purpleBrush);
            subSubList.setMarker(marker2);
            subSubList.setMarkerHierarchy(true);
    
            //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);
    
            //Set sub-sub list as the sub list of "subList_1"
            PdfListItem item_1_1 = subList_1.getItems().get(0);
            item_1_1.setSubList(subSubList);
    
            //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");
        }
    }
    


    좋은 웹페이지 즐겨찾기