Java - PowerPoint 프레젠테이션을 만드는 방법

매력적인 PowerPoint 프레젠테이션을 만드는 것은 두뇌, 눈, 손의 협력이 필요한 세심한 작업입니다. 완벽한 효과를 내기 위해서는 모양의 크기와 위치를 조정하거나 텍스트의 색상을 변경하는 등 세부 사항을 지속적으로 미세 조정해야 합니다. 이러한 이유로 PowerPoint 문서를 수동으로 만드는 것이 일반적으로 코드를 사용하는 것보다 더 효율적입니다. 그러나 어떤 경우에는 프로그래밍 방식으로 수행해야 할 수도 있습니다.

이 기사에서는 간단한 PowerPoint 문서를 작성하고 PowerPoint 문서 처리를 위한 무료 클래스 라이브러리인 Free Spire.Presentation for Java을 사용하여 기본 요소(텍스트 모양, 이미지 모양, 목록 및 표 포함)를 삽입하는 방법을 학습합니다. 자바 애플리케이션에서. 이 자습서의 주요 작업은 다음과 같습니다.
  • PowerPoint 문서 만들기
  • 첫 번째 슬라이드 가져오기 및 배경 이미지 설정
  • 텍스트 도형 삽입
  • 이미지 모양 삽입
  • 목록 삽입
  • 테이블 삽입
  • PowerPoint 문서 저장

  • Spire.Presentation.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.presentation.free</artifactId>
            <version>5.1.0</version>
        </dependency>
    </dependencies>
    


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

    네임스페이스 가져오기




    import com.spire.presentation.*;
    import com.spire.presentation.drawing.*;
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.geom.Rectangle2D;
    import java.awt.image.BufferedImage;
    import java.io.FileInputStream;
    


    파워포인트 문서 만들기




    //Create a Presentation object
    Presentation presentation = new Presentation();
    //Set the slide size type
    presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);
    


    첫 번째 슬라이드 가져오기 및 배경 이미지 설정



    기본적으로 새로 만든 PowerPoint 문서에는 하나의 빈 슬라이드 사전 설정이 있습니다.

    //Get the first slide
    ISlide slide = presentation.getSlides().get(0);
    //Set the background image
    String bgImage = "C:\\Users\\Administrator\\Desktop\\background.jpg";
    BufferedImage image = ImageIO.read(new FileInputStream(bgImage));
    IImageData imageData = slide.getPresentation().getImages().append(image);
    slide.getSlideBackground().setType(BackgroundType.CUSTOM);
    slide.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
    slide.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
    slide.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);
    


    텍스트 도형 삽입




    //Insert a text shape
    Rectangle2D textBounds = new Rectangle2D.Float(50, 50, 440, 100);
    IAutoShape textShape = slide.getShapes().appendShape(ShapeType.RECTANGLE, textBounds);
    textShape.getFill().setFillType(FillFormatType.NONE);
    textShape.getLine().setFillType(FillFormatType.NONE);
    String text = "This article shows you how to create a PowerPoint document from scratch in Java using Spire.Presentation for Java. " +
            "The following tasks are involved in this tutorial.";
    TextFont titleFont = new TextFont("Calibri (Body)");
    textShape.getTextFrame().setText(text);
    //Set the text formatting
    textShape.getTextFrame().getParagraphs().get(0).setAlignment(TextAlignmentType.LEFT);
    PortionEx portionEx =  textShape.getTextFrame().getTextRange().getParagraph().getFirstTextRange();
    portionEx.getFill().setFillType(FillFormatType.SOLID);
    portionEx.getFill().getSolidColor().setColor(Color.blue);
    portionEx.setLatinFont(titleFont);
    portionEx.setFontHeight(20f);
    


    이미지 모양 삽입




    //Load an image
    String imagePath = "C:\\Users\\Administrator\\Desktop\\java-logo.png";
    Rectangle2D imageBounds = new Rectangle2D.Double(500, 80, 400, 200);
    ShapeType shapeType = ShapeType.RECTANGLE;
    BufferedImage bufferedImage = ImageIO.read(new FileInputStream(imagePath));
    //Insert an image shape
    IImageData iImageData = slide.getPresentation().getImages().append(bufferedImage);
    IEmbedImage iEmbedImage = slide.getShapes().appendEmbedImage(shapeType, iImageData, imageBounds);
    iEmbedImage.getLine().setFillType(FillFormatType.NONE);
    iEmbedImage.getPictureFill().setFillType(PictureFillType.STRETCH);
    


    목록 삽입




    //Insert a bulleted list
    Rectangle2D listBounds = new Rectangle2D.Float(50, 160, 440, 180);
    String[] listContent = new String[]{
            " Create a PowerPoint Document",
            " Set the background image",
            " Insert a text shape",
            " Insert an image shape",
            " Insert a bulleted list",
            " Insert a table",
            " Save the PowerPoint document"
    };
    IAutoShape autoShape = slide.getShapes().appendShape(ShapeType.RECTANGLE, listBounds);
    autoShape.getTextFrame().getParagraphs().clear();
    autoShape.getFill().setFillType(FillFormatType.NONE);
    autoShape.getLine().setFillType(FillFormatType.NONE);
    for (int i = 0; i < listContent.length; i++) {
        //Set the formatting of the list text
        ParagraphEx paragraph = new ParagraphEx();
        autoShape.getTextFrame().getParagraphs().append(paragraph);
        paragraph.setText(listContent[i]);
        paragraph.getTextRanges().get(0).getFill().setFillType(FillFormatType.SOLID);
        paragraph.getTextRanges().get(0).getFill().getSolidColor().setColor(Color.black);
        paragraph.getTextRanges().get(0).setLatinFont(new TextFont("Calibri (Body)"));
        paragraph.getTextRanges().get(0).setFontHeight(20);
        paragraph.setBulletType(TextBulletType.SYMBOL);
    }
    


    표 삽입




    //Define column widths and row heights
    Double[] widths = new Double[]{100d, 100d, 100d, 150d, 100d, 100d};
    Double[] heights = new Double[]{15d, 15d, 15d, 15d};
    //Add a table
    ITable table = presentation.getSlides().get(0).getShapes().appendTable(50, 350, widths, heights);
    //Define table data
    String[][] data = new String[][]{
            {"Emp#", "Name", "Job", "HiringD", "Salary", "Dept#"},
            {"7369", "Andrews", "Engineer", "05/12/2021", "1600.00", "20"},
            {"7499", "Nero", "Technician", "03/23/2021", "1800.00", "30"},
            {"7566", "Martin", "Manager", "12/21/2021", "2600.00", "10"},
    };
    //Loop through the row and column of the table
    for (int i = 0; i < data.length; i++) {
        for (int j = 0; j < data[i].length; j++) {
            //Fill the table with data
            table.get(j, i).getTextFrame().setText(data[i][j]);
            //Align text in each cell to center
            table.get(j, i).getTextFrame().getParagraphs().get(0).setAlignment(TextAlignmentType.CENTER);
        }
    }
    //Apply a built-in style to table
    table.setStylePreset(TableStylePreset.LIGHT_STYLE_1_ACCENT_4);
    


    PowerPoint 문서 저장




    //Save to file
    presentation.saveToFile("output/CreatePowerPoint.pptx", FileFormat.PPTX_2013);
    


    산출



    좋은 웹페이지 즐겨찾기