Apache POI PPT-빠른 가이드

많은 경우 Microsoft Office 파일 형식으로 보고서를 생성하려면 소프트웨어 응용 프로그램이 필요합니다. 때로는 응용 프로그램이 MS-Office 파일을 입력 데이터로 수신 할 것으로 예상되기도합니다.

MS Office 파일을 출력으로 생성하려는 Java 프로그래머는 미리 정의 된 읽기 전용 API를 사용해야합니다.

Apache POI 란 무엇입니까?

Apache POI는 프로그래머가 Java 프로그램을 사용하여 MS-Office 파일을 생성, 수정 및 표시 할 수 있도록하는 널리 사용되는 API입니다. Apache Software Foundation에서 개발 및 배포 한 오픈 소스 라이브러리입니다. 여기에는 사용자 입력 데이터 또는 파일을 MS Office 문서로 디코딩하는 클래스와 메서드가 포함되어 있습니다.

Apache POI의 구성 요소

Apache POI에는 MS-Office의 모든 OLE2 복합 문서에서 작동하는 클래스와 메서드가 포함되어 있습니다. 이 API의 구성 요소 목록은 다음과 같습니다.

  • POIFS (Poor Obfuscation Implementation File System)−이 구성 요소는 다른 모든 POI 요소의 기본 요소입니다. 다른 파일을 명시 적으로 읽는 데 사용됩니다.

  • HSSF (Horrible SpreadSheet Format) − MS-Excel 파일의 .xls 형식을 읽고 쓸 때 사용합니다.

  • XSSF (XML SpreadSheet Format) − MS-Excel의 .xlsx 파일 형식에 사용됩니다.

  • HPSF (Horrible Property Set Format) − MS-Office 파일의 속성 집합을 추출하는데 사용됩니다.

  • HWPF (Horrible Word Processor Format) − 읽고 쓰는 데 사용됩니다. .doc MS-Word의 확장 파일.

  • XWPF (XML Word Processor Format) − MS-Word의 .docx 확장자 파일을 읽고 쓸 때 사용합니다.

  • HSLF (Horrible Slide Layout Format) − PowerPoint 프레젠테이션을 읽고, 만들고, 편집하는 데 사용됩니다.

  • HDGF (Horrible DiaGram Format) − MS-Visio 바이너리 파일에 대한 클래스와 메서드가 포함되어 있습니다.

  • HPBF (Horrible PuBlisher Format) − MS-Publisher 파일을 읽고 쓰는 데 사용됩니다.

이 자습서는 Java를 사용하여 Microsoft PowerPoint 프레젠테이션 작업 과정을 안내합니다. 따라서 토론은XSLF component.

Note − 이전 버전의 POI는 doc, xls, ppt 등과 같은 바이너리 파일 형식을 지원합니다. Version 3.5부터 POI는 docx, xlsx, pptx 등과 같은 MS-Office의 OOXML 파일 형식을 지원합니다.

이 장에서는 Java PowerPoint API의 몇 가지 특징과 기능에 대해 설명합니다. Java PPT 관련 API를 제공하는 많은 공급 업체가 있습니다. 이들 중 일부는이 장에서 고려됩니다.

자바 용 Aspose Slides

Aspose slides for Java는 공급 업체에서 개발 및 배포 한 순수 라이선스 Java PPT API입니다. Aspose. 이 API의 최신 버전은 8.1.2로 2014 년 7 월에 출시되었습니다. 슬라이드를 읽고, 쓰고, 관리 할 수있는 PPT 구성 요소를 설계하기위한 풍부하고 무거운 API (일반 Java 클래스와 AWT 클래스의 조합)입니다.

이 API의 일반적인 용도는 다음과 같습니다.

  • 역동적 인 프레젠테이션 구축
  • 고화질 프레젠테이션 렌더링 및 인쇄
  • 프레젠테이션 생성, 편집, 변환 및 인쇄

Apache POI

Apache POI는 Apache Software Foundation에서 제공하는 100 % 오픈 소스 라이브러리입니다. 대부분의 중소 규모 애플리케이션 개발자는 Apache POI (HSLF + XSLF)에 크게 의존합니다. PPT 라이브러리의 모든 기본 기능을 지원합니다. 그러나 렌더링 및 텍스트 추출이 주요 기능입니다. 아래는 PPT 용 Apache POI의 아키텍처입니다.

이 장에서는 Windows 및 Linux 기반 시스템에서 Apache POI를 설정하는 프로세스를 안내합니다. Apache POI는 복잡한 설정 절차없이 몇 가지 간단한 단계에 따라 현재 Java 환경에 쉽게 설치 및 통합 할 수 있습니다. 설치하려면 사용자 관리가 필요합니다.

시스템 요구 사항

JDK Java SE 2 JDK 1.5 이상
기억 1GB RAM (권장)
디스크 공간 최소 요구 사항 없음
운영 체제 버전 Windows XP 이상, Linux

이제 Apache POI를 설치하는 단계를 진행하겠습니다.

1 단계 : Java 설치 확인

먼저 시스템에 Java SDK (Software Development Kit)가 설치되어 있어야합니다. 이를 확인하려면 작업중인 플랫폼에 따라 다음 두 명령 중 하나를 실행하십시오.

Java 설치가 제대로 완료되면 Java 설치의 현재 버전과 사양이 표시됩니다. 다음 표에는 샘플 출력이 나와 있습니다.

플랫폼 명령 샘플 출력
윈도우

명령 콘솔을 열고 입력하십시오-

\>java –version

자바 버전 '1.7.0_60'

Java (TM) SE 런타임

환경 (빌드 1.7.0_60-b19)

Java Hotspot (TM) 64 비트 서버

VM (빌드 24.60-b09, 혼합 모드)

리눅스

명령 터미널을 열고 입력하십시오-

$java –version

자바 버전 "1.7.0_25"

JDK 런타임 환경 열기 (rhel-2.3.10.4.el6_4-x86_64)

JDK 64 비트 서버 VM 열기 (빌드 23.7-b01, 혼합 모드)

  • 이 자습서의 독자는 시스템에 Java SDK 버전 1.7.0_60이 설치되어 있다고 가정합니다.

  • Java SDK가없는 경우 현재 버전을 https://www.oracle.com/technetwork/java/javase/downloads/index.html 설치하십시오.

2 단계 : Java 환경 설정

시스템에서 Java가 설치된 기본 디렉토리 위치를 가리 키도록 환경 변수 JAVA_HOME을 설정하십시오. 예를 들면

플랫폼 기술
윈도우 JAVA_HOME을 C : \ ProgramFiles \ java \ jdk1.7.0_60으로 설정합니다.
리눅스 JAVA_HOME 내보내기 = / usr / local / java-current

Java 컴파일러 위치의 전체 경로를 시스템 경로에 추가하십시오.

플랫폼 기술
윈도우 시스템 변수 PATH의 끝에 문자열 "C : \ Program Files \ Java \ jdk1.7.0_60 \ bin"을 추가합니다.
리눅스 내보내기 PATH = $ PATH : $ JAVA_HOME / bin /

명령 실행 java -version 위에서 설명한대로 명령 프롬프트에서.

3 단계 : Apache POI 라이브러리 설치

최신 버전의 Apache POI 다운로드 https://poi.apache.org/download.html필요한 라이브러리가 Java 프로그램에 링크 될 수있는 폴더에 컨텐츠의 압축을 풉니 다. 파일이 C 드라이브의 폴더에 수집되었다고 가정 해 보겠습니다.

다음 이미지는 다운로드 한 폴더 내의 디렉토리와 파일 구조를 보여줍니다.

다섯의 완전한 경로를 추가 jars 위의 이미지에서 강조 표시된대로 CLASSPATH.

플랫폼 기술
윈도우

사용자 변수 CLASSPATH 끝에 다음 문자열을 추가하십시오.

“C : \ poi-3.9 \ poi-3.9-20121203.jar;”

“C : \ poi-3.9 \ poi-ooxml-3.9-20121203.jar;”

“C : \ poi-3.9 \ poi-ooxml-schemas-3.9-20121203.jar;”

“C : \ poi-3.9 \ ooxml-lib \ dom4j-1.6.1.jar;”

“C : \ poi-3.9 \ ooxml-lib \ xmlbeans-2.3.0.jar;.;”

리눅스

내보내기 CLASSPATH = $ CLASSPATH :

/usr/share/poi-3.9/poi-3.9-20121203.tar :

/usr/share/poi-3.9/poi-ooxml-schemas-3.9-20121203.tar :

/usr/share/poi-3.9/poi-ooxml-3.9-20121203.tar :

/usr/share/poi-3.9/ooxml-lib/dom4j-1.6.1.tar :

/usr/share/poi-3.9/ooxml-lib/xmlbeans-2.3.0.tar

pom.xml

다음은이 튜토리얼에서 프로그램을 실행하기위한 pom.xml 파일입니다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>ApachePoiPPT</groupId>
   <artifactId>ApachePoiPPT</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <build>
      <sourceDirectory>src</sourceDirectory>
      <plugins>
         <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
               <source>1.8</source>
               <target>1.8</target>
            </configuration>
         </plugin>
      </plugins>
   </build>
   <dependencies>  
      <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi</artifactId>
         <version>3.9</version>
      </dependency>
      <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi-ooxml</artifactId>
         <version>3.9</version>
      </dependency>    
   </dependencies>
</project>

이 장에서는 Java 프로그램을 사용하여 PPT 파일 작업에 중요한 Apache POI API의 몇 가지 클래스와 메서드에 대해 알아 봅니다.

표시

프레젠테이션을 만들고 관리하려면 org.apache.poi.xslf.usermodel 패키지에 XMLSlideShow라는 클래스가 있습니다. 다음은이 클래스의 몇 가지 중요한 메서드와 생성자입니다.

Class − XMLSlideShow

Package − org.apache.poi.xslf.usermodel

S. 아니 생성자 및 설명
1

XMLSlideShow(java.io.InputStream inputStream)

inputstream 클래스 개체를 전달하여이 클래스를 인스턴스화 할 수 있습니다.

S. 아니 방법 및 설명
1

int addPicture (byte[] pictureData, int format)

이 방법을 사용하면 프레젠테이션에 그림을 추가 할 수 있습니다.

2

XSLFSlide createSlide()

프레젠테이션에 빈 슬라이드를 만듭니다.

XSLFSlide createSlide(XSLFSlideLayout layout)

지정된 슬라이드 레이아웃으로 슬라이드를 만듭니다.

4

java.util.List <XSLFPictureData> getAllPictures()

프레젠테이션에있는 모든 그림의 배열을 반환합니다.

5

java.awt.Dimension getPageSize()

이 방법을 사용하면 현재 페이지 크기를 알 수 있습니다.

6

XSLFSlideMaster[] getSlideMasters()

프레젠테이션에있는 모든 슬라이드의 배열을 반환합니다.

7

XSLFSlide[] getSlides()

프레젠테이션의 모든 슬라이드를 반환합니다.

8

XSLFSlide removeSlide(int index)

이 방법을 사용하면 프레젠테이션에서 슬라이드를 제거 할 수 있습니다.

9

void setPageSize(java.awt.Dimension pgSize)

이 방법을 사용하여 페이지 크기를 재설정 할 수 있습니다.

10

void setSlideOrder(XSLFSlide slide, int newIndex)

이 방법을 사용하여 슬라이드 순서를 변경할 수 있습니다.

미끄러지 다

프레젠테이션에서 슬라이드를 만들고 관리하려면 XSLFSlide클래스가 사용됩니다. 이 클래스의 몇 가지 중요한 방법이 아래에 언급되어 있습니다.

Class − XSLFSlide

Package − org.apache.poi.xslf.usermodel

S. 아니 방법 및 설명
1

XSLFBackground getBackground()

반환 XSLFBackground슬라이드 배경의 색상 및 앵커와 같은 세부 정보를 검색하는 데 사용할 수있는 개체입니다. 이 개체를 사용하여 슬라이드에 도형을 그릴 수도 있습니다.

2

XSLFSlideLayout getSlideLayout()

에 대한 액세스를 제공합니다. XSLFSlideLayout 현재 슬라이드의 개체입니다.

XSLFSlideMaster getSlideMaster()

현재 슬라이드의 슬라이드 마스터에 대한 액세스를 제공합니다.

4

XSLFTheme getTheme()

반환 XSLFTheme 현재 슬라이드의 개체입니다.

5

java.lang.String getTitle()

현재 슬라이드의 제목을 반환합니다.

6

XSLFSlide importContent(XSLFSheet src)

다른 슬라이드의 내용을이 슬라이드에 복사합니다.

슬라이드 마스터

슬라이드 레이아웃이 다른 프레젠테이션의 구성 요소입니다. 그만큼XSLFSlideMaster클래스에 액세스 할 수 있습니다. 다음은이 클래스의 몇 가지 중요한 방법입니다.

Class − XSLFSlideMaster

Package − org.apache.poi.xslf.usermodel

S. 아니 방법 및 설명
1

XSLFBackground getBackground()

슬라이드 마스터의 공통 배경을 반환합니다.

2

XSLFSlideLayout getLayout(SlideLayout type)

XSLFSlideLayout 개체를 반환합니다.

XSLFSlideLayout[] getSlideLayouts()

이 슬라이드 마스터의 모든 슬라이드 레이아웃을 반환합니다.

슬라이드 레이아웃

POI 라이브러리에는 XSLFSlideLayout, 슬라이드 레이아웃을 관리 할 수 ​​있습니다.

Class − XSLFSlideLayout

Package − org.apache.poi.xslf.usermodel

S. 아니 방법 및 설명
1

void copyLayout(XSLFSlide slide)

이 메서드는이 레이아웃의 자리 표시자를 지정된 슬라이드로 복사합니다.

텍스트 단락

다음을 사용하여 슬라이드에 콘텐츠를 쓸 수 있습니다. XSLFTextParagraph수업. 다음은이 클래스의 몇 가지 중요한 방법입니다.

Class − XSLFTextParagraph

Package − org.apache.poi.xslf.usermodel

S. 아니 방법 및 설명
1

XSLFTextRun addLineBreak()

단락에 줄 바꿈을 삽입합니다.

2

XSLFTextRun addNewTextRun()

단락에 새로운 텍스트를 추가합니다.

void setBulletAutoNumber(ListAutoNumber scheme, int startAt)

단락에 자동 번호 매기기 글 머리 기호를 적용합니다.

4

void setIndent(double value)

단락의 텍스트에 들여 쓰기를 설정합니다.

5

void setLeftMargin(double value)

이 방법은 단락의 왼쪽 여백을 추가하는 데 사용됩니다.

6

void setLineSpacing(double linespacing)

이 방법은 단락에서 줄 간격을 설정하는 데 사용됩니다.

7

void setTextAlign(TextAlign align)

이 방법은 단락에 설정할 정렬을 설정하는 데 사용됩니다.

텍스트 실행

이것은 텍스트 본문 내에서 가장 낮은 수준의 텍스트 분리입니다. 당신은XSLFTextRun클래스는 단락의 텍스트 실행을 관리합니다. 다음은이 클래스의 몇 가지 중요한 방법입니다.

Class − XSLFTextParagraph

Package − org.apache.poi.xslf.usermodel

S. 아니 방법 및 설명
1

XSLFHyperlink createHyperlink()

프레젠테이션에 하이퍼 링크를 만듭니다.

2

XSLFHyperlink getHyperlink()

이 방법은 하이퍼 링크를 가져 오는 데 사용됩니다.

java.lang.String getText()

이 텍스트 노드의 값을 Java 문자열로 리턴합니다.

4

void setBold(boolean bold)

이 방법은 텍스트를 굵게 설정하는 데 사용됩니다.

5

void setCharacterSpacing(double spc)

텍스트 실행 내에서 문자 사이의 간격을 설정합니다.

6

void setFontColor(java.awt.Color color)

텍스트의 글꼴 색상을 설정합니다.

7

void setFontSize(double fontSize)

텍스트의 글꼴 크기를 설정합니다.

8

void setItalic(boolean italic)

이 방법은 단락을 기울임 꼴로 만드는 데 사용됩니다.

9

void setStrikethrough(boolean strike)

이 메서드는 텍스트 연속을 취소 선 텍스트로 서식을 지정하는 데 사용됩니다.

10

void setSubscript(boolean flag)

이 방법은 텍스트를 아래 첨자로 포맷하는 데 사용됩니다.

11

void setSuperscript(boolean flag)

이 방법은 위 첨자로 실행되는 텍스트의 형식을 지정하는 데 사용됩니다.

12

void setText(java.lang.String text)

이 방법은 런에서 텍스트를 설정하는 데 사용됩니다.

13

void setUnderline(boolean underline)

이 방법은 텍스트 런에서 텍스트에 밑줄을 긋는 데 사용됩니다.

텍스트 모양

PPT에는 텍스트를 담을 수있는 도형이 있습니다. 우리는 이것을 사용하여 관리 할 수 ​​있습니다.XSLFTextShape수업. 다음은이 클래스의 몇 가지 중요한 방법입니다.

Class − XSLFTextShape

Package − org.apache.poi.xslf.usermodel

S. 아니 방법 및 설명
1

void setPlaceholder(Placeholder placeholder)

이 방법을 사용하여 자리 표시자를 선택할 수 있습니다.

2

Placeholder getTextType()

현재 자리 표시 자의 유형을 반환합니다.

void clearText()

현재 텍스트 모양의 텍스트 영역을 지 웁니다.

4

XSLFTextParagraph addNewTextParagraph()

셰이프에 새 단락 실행을 추가합니다.

5

void drawContent(java.awt.Graphics2D graphics)

이 방법을 사용하면 슬라이드에 내용을 그릴 수 있습니다.

하이퍼 링크

POI 라이브러리에는 XSLFHyperlink프레젠테이션에서 하이퍼 링크를 만들 수 있습니다. 다음은이 클래스의 몇 가지 중요한 방법입니다.

Class − XSLFHyperlink

Package − org.apache.poi.xslf.usermodel

S. 아니 방법 및 설명
1

java.net.URI getTargetURL()

프레젠테이션 슬라이드에있는 URL을 반환합니다.

2

void setAddress(java.lang.String address)

이 방법은 주소를 URL로 설정하는 데 사용됩니다.

void setAddress(XSLFSlide slide)

프레젠테이션 슬라이드에있는 URL에 주소를 설정합니다.

일반적으로 MS-PowerPoint를 사용하여 프레젠테이션을 만듭니다. 이제 Java를 사용하여 프레젠테이션을 만드는 방법을 살펴 보겠습니다. 이 장을 마치면 새 MS-PowerPoint 프레젠테이션을 만들고 Java 프로그램으로 기존 PPT를 열 수 있습니다.

빈 프레젠테이션 만들기

빈 프레젠테이션을 만들려면 다음을 인스턴스화해야합니다. XMLSlideShoworg.poi.xslf.usermodel 패키지의 클래스 -

XMLSlideShow ppt = new XMLSlideShow();

다음을 사용하여 PPT 문서에 변경 사항을 저장합니다. FileOutputStream 클래스-

File file = new File("C://POIPPT//Examples//example1.pptx");
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);

다음은 빈 MS-PowerPoint 프레젠테이션을 만드는 전체 프로그램입니다.

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class CreatePresentation {
   
   public static void main(String args[]) throws IOException {
   
      //creating a new empty slide show
      XMLSlideShow ppt = new XMLSlideShow();	     
      
      //creating an FileOutputStream object
      File file = new File("example1.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out);
      System.out.println("Presentation created successfully");
      out.close()
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. CreatePresentation.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac CreatePresentation.java $java CreatePresentation

시스템 환경이 POI 라이브러리로 구성된 경우 컴파일 및 실행되어 이름이 지정된 빈 PPT 파일을 생성합니다. example1.pptx 현재 디렉토리에서 명령 프롬프트에 다음 출력을 표시합니다.

Presentation created successfully

빈 PowerPoint 문서는 다음과 같이 나타납니다.

기존 프레젠테이션 편집

기존 프레젠테이션을 열려면 XMLSlideShow 수업과 통과 FileInputStream 편집 할 파일의 개체를 XMLSlideShow 건설자.

File file = new File(“C://POIPPT//Examples//example1.pptx”);
FileInputstream inputstream = new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(inputstream);

다음을 사용하여 프레젠테이션에 슬라이드를 추가 할 수 있습니다. createSlide()org.poi.xslf.usermodel 패키지 에있는 XMLSlideShow 클래스의 메소드 .

XSLFSlide slide1 = ppt.createSlide();

다음은 기존 PPT를 열고 슬라이드를 추가하는 완전한 프로그램입니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class EditPresentation {

   public static void main(String ar[]) throws IOException {
	   
      //opening an existing slide show
      File file = new File("example1.pptx");
      FileInputStream inputstream = new FileInputStream(file);
      XMLSlideShow ppt = new XMLSlideShow(inputstream);
      
      //adding slides to the slodeshow
      XSLFSlide slide1 = ppt.createSlide();
      XSLFSlide slide2 = ppt.createSlide();
      
      //saving the changes 
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      
      System.out.println("Presentation edited successfully");
      out.close();	
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. EditPresentation.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac EditPresentation.java $java EditPresentation

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

slides successfully added

새로 추가 된 슬라이드가있는 출력 PPT 문서는 다음과 같습니다.

PPT에 슬라이드를 추가 한 후 슬라이드에 대한 추가, 수행, 읽기 및 쓰기 작업을 수행 할 수 있습니다.

이전 장에서 빈 슬라이드를 만드는 방법과 슬라이드를 추가하는 방법을 살펴 보았습니다. 이 장에서는 사용 가능한 슬라이드 목록을 가져 오는 방법과 다양한 레이아웃으로 슬라이드를 만드는 방법을 배웁니다.

사용 가능한 슬라이드 레이아웃

PowerPoint 프레젠테이션에는 슬라이드 레이아웃이 있으며 원하는 레이아웃을 선택하여 슬라이드를 편집 할 수 있습니다. 먼저 사용 가능한 모든 슬라이드 레이아웃 목록을 찾아 보겠습니다.

  • 서로 다른 슬라이드 마스터가 있으며 각 슬라이드 마스터에는 여러 슬라이드 레이아웃이 있습니다.

  • 다음을 사용하여 슬라이드 마스터 목록을 가져올 수 있습니다. getSlideMasters() 의 방법 XMLSlideShow 수업.

  • 다음을 사용하여 각 슬라이드 마스터에서 슬라이드 레이아웃 목록을 가져올 수 있습니다. getSlideLayouts() 의 방법 XSLFSlideMaster 수업.

  • 레이아웃 개체에서 슬라이드 레이아웃의 이름을 가져올 수 있습니다. getType() 의 방법 XSLFSlideLayout 수업.

Note−이 모든 클래스는 org.poi.xslf.usermodel 패키지에 속합니다 .

다음은 PPT에서 사용 가능한 슬라이드 레이아웃 목록을 얻을 수있는 완전한 프로그램입니다.

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;

public class SlideLayouts {

   public static void main(String args[]) throws IOException {
   
      //create an empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      System.out.println("Available slide layouts:")
   
      //getting the list of all slide masters
      for(XSLFSlideMaster master : ppt.getSlideMasters()) {
   
         //getting the list of the layouts in each slide master
         for(XSLFSlideLayout layout : master.getSlideLayouts()) {
   
            //getting the list of available slides
            System.out.println(layout.getType());
         } 
      }
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. SlideLayouts.java , 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac SlideLayouts.java $java SlideLayouts

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

Available slide layouts:
TITLE
PIC_TX
VERT_TX
TWO_TX_TWO_OBJ
BLANK
VERT_TITLE_AND_TX
TITLE_AND_CONTENT
TITLE_ONLY
SECTION_HEADER
TWO_OBJ
OBJ_TX

다음은 MS-Office 360, 2013 버전에서 사용할 수있는 몇 가지 샘플 슬라이드 레이아웃입니다.

제목 레이아웃

제목 레이아웃을 사용하여 PPT에서 슬라이드를 만들어 보겠습니다. 아래 단계를 따르십시오-

Step 1 − 인스턴스화하여 빈 프레젠테이션을 만듭니다. XMLSlideShow 아래와 같이 클래스.

XMLSlideShow ppt = new XMLSlideShow();

Step 2 − 다음을 사용하여 슬라이드 마스터 목록을 가져옵니다. getSlideMasters()방법. 그런 다음 아래 그림과 같이 색인을 사용하여 원하는 슬라이드 마스터를 선택합니다.

XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

여기서는 슬라이드 마스터 배열 의 0 번째 위치에있는 기본 슬라이드 마스터를 가져 옵니다.

Step 3 − 원하는 레이아웃을 getLayout() 의 방법 XSLFSlideMaster수업. 이 메서드는 다음의 정적 변수 중 하나를 전달해야하는 매개 변수를받습니다.SlideLayoutclass, 원하는 레이아웃을 나타냅니다. 이 클래스에는 각 변수가 슬라이드 레이아웃을 나타내는 여러 변수가 있습니다.

아래에 주어진 코드 조각은 제목 레이아웃을 만드는 방법을 보여줍니다-

XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);

Step 4 − 슬라이드 레이아웃 개체를 매개 변수로 전달하여 새 슬라이드를 생성합니다.

XSLFSlide slide = ppt.createSlide(titleLayout);

Step 5 − 다음을 사용하여 자리 표시자를 선택합니다. getPlaceholder() 의 방법 XSLFSlide수업. 이 메서드는 정수 매개 변수를받습니다. 통과함으로써0 그것에, 당신은 얻을 것입니다 XSLFTextShape개체를 사용하여 슬라이드의 제목 텍스트 영역에 액세스 할 수 있습니다. 아래와 같이 setText () 메서드를 사용하여 제목을 설정합니다.

XSLFTextShape title1 = slide.getPlaceholder(0);
//setting the title init
title1.setText("Tutorials point");

다음은 프레젠테이션에서 제목 레이아웃으로 슬라이드를 만드는 완전한 프로그램입니다.

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class TitleLayout {

   public static void main(String args[]) throws IOException {
   
      //creating presentation
      XMLSlideShow ppt = new XMLSlideShow();	    	
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //get the desired slide layout 
      XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
                                                     
      //creating a slide with title layout
      XSLFSlide slide1 = ppt.createSlide(titleLayout);
      
      //selecting the place holder in it 
      XSLFTextShape title1 = slide1.getPlaceholder(0); 
      
      //setting the title init 
      title1.setText("Tutorials point");
      
      //create a file object
      File file = new File("C://POIPPT//Examples//Titlelayout.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a PPt document
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();  
   }
}

위의 Java 코드를 TitleLayout.java로 저장하고 다음과 같이 명령 프롬프트에서 컴파일하고 실행합니다.

$javac TitleLayout.java $java TitleLayout

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

slide created successfully

새로 추가 된 제목 레이아웃 슬라이드가있는 PPT 문서는 다음과 같이 나타납니다.

제목 및 콘텐츠 레이아웃

제목 및 콘텐츠 레이아웃을 사용하여 PPT에서 슬라이드를 만들어 보겠습니다. 아래 단계를 따르십시오.

Step 1 − 인스턴스화하여 빈 프레젠테이션을 만듭니다. XMLSlideShow 아래와 같이 클래스.

XMLSlideShow ppt = new XMLSlideShow();

Step 2 − 다음을 사용하여 슬라이드 마스터 목록을 가져옵니다. getSlideMasters()방법. 아래 그림과 같이 색인을 사용하여 원하는 슬라이드 마스터를 선택합니다.

XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

여기에서는 슬라이드 마스터 배열의 0 번째 위치에있는 기본 슬라이드 마스터를 가져옵니다.

Step 3 − 원하는 레이아웃을 getLayout() 의 방법 XSLFSlideMaster수업. 이 메서드는 다음의 정적 변수 중 하나를 전달해야하는 매개 변수를받습니다.SlideLayout원하는 레이아웃을 나타내는 클래스입니다. 이 클래스에는 슬라이드 레이아웃을 나타내는 여러 변수가 있습니다.

다음 코드 스 니펫은 제목과 콘텐츠 레이아웃을 만드는 방법을 보여줍니다.

XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);

Step 4 − 슬라이드 레이아웃 개체를 매개 변수로 전달하여 새 슬라이드를 생성합니다.

XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);

Step 5 − 다음을 사용하여 자리 표시자를 선택합니다. getPlaceholder() 의 방법 XSLFSlide수업. 이 메서드는 정수 매개 변수를받습니다. 통과함으로써1 그것에, 당신은 얻을 것입니다 XSLFTextShape개체를 사용하여 슬라이드의 콘텐츠 영역에 액세스 할 수 있습니다. 아래와 같이 setText () 메서드를 사용하여 제목을 설정합니다.

XSLFTextShape title1 = slide1.getPlaceholder(1);
//setting the title init 
title1.setText("Introduction");

Step 6 − 슬라이드의 기존 텍스트를 지 웁니다. clearText() 의 방법 XSLFTextShape 수업.

body.clearText();

Step 7 − 사용하여 새 단락 추가 addNewTextParagraph()방법. 이제 단락에 새 텍스트 실행을 추가하십시오.addNewTextRun()방법. 이제 텍스트 실행에 다음을 사용하여 텍스트를 추가하십시오.setText() 방법은 아래와 같습니다.

body.addNewTextParagraph().addNewTextRun().setText("this is  my first slide body");

다음은 프레젠테이션에서 제목 레이아웃으로 슬라이드를 만드는 완전한 프로그램입니다.

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class TitleAndBodyLayout {
   
   public static void main(String args[]) throws IOException {
   
      //creating presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //select a layout from specified list
      XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
      
      //creating a slide with title and content layout
      XSLFSlide slide = ppt.createSlide(slidelayout);
      //selection of title place holder
      XSLFTextShape title = slide.getPlaceholder(0);
      
      //setting the title in it
      title.setText("introduction");
      
      //selection of body placeholder
      XSLFTextShape body = slide.getPlaceholder(1);
      
      //clear the existing text in the slide
      body.clearText();
      
      //adding new paragraph
      body.addNewTextParagraph().addNewTextRun().setText("this is  my first slide body");
      
      //create a file object
      File file = new File("contentlayout.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a file
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();                
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. TitleLayout.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac TitleLayout.java $java TitleLayout

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

slide created successfully

새로 추가 된 제목 레이아웃 슬라이드가있는 PPT 문서는 다음과 같이 나타납니다.

같은 방법으로 레이아웃이 다른 슬라이드를 만들 수도 있습니다.

이 장을 마치면 슬라이드에서 삭제, 순서 변경 및 읽기 및 쓰기 작업을 수행 할 수 있습니다.

슬라이드 변경

다음을 사용하여 슬라이드의 페이지 크기를 변경할 수 있습니다. setPageSize() 의 방법 XMLSlideShow 수업.

처음에는 아래와 같이 프리젠 테이션을 만듭니다.

File file = new File("C://POIPPT//Examples// TitleAndContentLayout.pptx");

//create presentation
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

다음을 사용하여 현재 슬라이드의 크기를 가져옵니다. getPageSize() 의 방법 XMLSlideShow 수업.

java.awt.Dimension pgsize = ppt.getPageSize();

페이지 크기를 설정하려면 setPageSize() 방법.

ppt.setPageSize(new java.awt.Dimension(1024, 768));

슬라이드 크기를 변경하는 전체 프로그램은 다음과 같습니다.

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class ChangingSlide {
   
   public static void main(String args[]) throws IOException {

      //create file object
      File file = new File("TitleAndContentLayout.pptx");
	 
      //create presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the current page size
      java.awt.Dimension pgsize = ppt.getPageSize();
      int pgw = pgsize.width; //slide width in points
      int pgh = pgsize.height; //slide height in points
      
      System.out.println("current page size of the PPT is:");
      System.out.println("width :" + pgw);
      System.out.println("height :" + pgh);
      
      //set new page size
      ppt.setPageSize(new java.awt.Dimension(2048,1536));
      
      //creating file object
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out);
      System.out.println("slide size changed to given dimentions ");
      out.close();	
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. ChangingSlide.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac ChangingSlide.java $java ChangingSlide

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

current page size of the presentation is : 
width :720
height :540
slide size changed to given dimensions

다음은 슬라이드 크기를 변경하기 전 프레젠테이션의 스냅 샷입니다.

크기를 변경하면 슬라이드가 다음과 같이 나타납니다.

슬라이드 순서 변경

다음을 사용하여 슬라이드 순서를 설정할 수 있습니다. setSlideOrder()방법. 다음은 슬라이드 순서를 설정하는 절차입니다.

아래와 같이 기존 PPT 문서를 엽니 다-

File file = new File("C://POIPPT//Examples//example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

다음을 사용하여 슬라이드 가져 오기 getSlides() 아래와 같이 방법-

XSLFSlide[] slides = ppt.getSlides();

슬라이드 배열에서 슬라이드를 선택하고 setSlideOrder() 아래와 같이 방법-

//selecting the fourth slide
XSLFSlide selectesdslide = slides[4];

//bringing it to the top
ppt.setSlideOrder(selectesdslide, 1);

다음은 프레젠테이션에서 슬라이드 순서를 변경하는 전체 프로그램입니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class ReorderSlide {	
   
   public static void main(String args[]) throws IOException {
   
      //opening an existing presentation
      File file = new File("example1.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //get the slides 
      XSLFSlide[] slides = ppt.getSlides();    
      
      //selecting the fourth slide
      XSLFSlide selectesdslide = slides[13];
      
      //bringing it to the top
      ppt.setSlideOrder(selectesdslide, 0);
      
      //creating an file object 
      FileOutputStream out = new FileOutputStream(file);
	  
      //saving the changes to a file
      ppt.write(out);
      out.close();	
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. ReorderSlide.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac ReorderSlide.java $java ReorderSlide

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

Reordering of the slides is done

다음은 슬라이드 순서를 변경하기 전에 프레젠테이션의 스냅 샷입니다.

슬라이드 순서를 변경하면 프레젠테이션이 다음과 같이 나타납니다. 여기에서는 이미지가있는 슬라이드를 선택하여 맨 위로 이동했습니다.

슬라이드 삭제

다음을 사용하여 슬라이드를 삭제할 수 있습니다. removeSlide()방법. 슬라이드를 삭제하려면 아래 단계를 따르십시오.

다음을 사용하여 기존 프레젠테이션을 엽니 다. XMLSlideShow 아래와 같이 클래스-

File file = new File("C://POIPPT//Examples//image.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

다음을 사용하여 필요한 슬라이드를 삭제합니다. removeSlide()방법. 이 메서드는 정수 매개 변수를받습니다. 삭제할 슬라이드의 인덱스를이 메서드에 전달합니다.

ppt.removeSlide(1);

다음은 프레젠테이션에서 슬라이드를 삭제하는 프로그램입니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class Deleteslide { 
   
   public static void main(String args[]) throws IOException {
   
      //Opening an existing slide
      File file = new File("image.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //deleting a slide
      ppt.removeSlide(1);
      
      //creating a file object
      FileOutputStream out = new FileOutputStream(file);
      
      //Saving the changes to the presentation
      ppt.write(out);
      out.close();	
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. Deleteslide.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac Deleteslide.java $java Deleteslide

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

reordering of the slides is done

아래의 스냅 샷은 슬라이드를 삭제하기 전 프레젠테이션입니다.

슬라이드를 삭제하면 다음과 같이 프레젠테이션이 나타납니다.

이 장에서는 PPT에 이미지를 추가하는 방법과 PPT에서 이미지를 읽는 방법을 배웁니다.

이미지 추가

다음을 사용하여 프레젠테이션에 이미지를 추가 할 수 있습니다. createPicture() 의 방법 XSLFSlide. 이 메서드는 바이트 배열 형식의 이미지를받습니다. 따라서 프레젠테이션에 추가 할 이미지의 바이트 배열을 만들어야합니다.

프레젠테이션에 이미지를 추가하려면 주어진 절차를 따르십시오. 다음을 사용하여 빈 슬라이드 쇼 만들기XMLSlideShow 아래와 같이-

XMLSlideShow ppt = new XMLSlideShow();

다음을 사용하여 빈 프레젠테이션을 만듭니다. createSlide().

XSLFSlide slide = ppt.createSlide();

추가 할 이미지 파일을 읽고 다음을 사용하여 바이트 배열로 변환합니다. IOUtils.toByteArray() of the IOUtils class as shown below −

//reading an image
File image = new File("C://POIPPT//boy.jpg");

//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));

Add the image to the presentation using addPicture(). This method accepts two variables: byte array format of the image that is to be added and the static variable representing the file format of the image. The usage of the addPicture() method is shown below −

int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);

Embed the image to the slide using createPicture() as shown below −

XSLFPictureShape pic = slide.createPicture(idx);

Given below is the complete program to add an image to the slide in a presentation −

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.util.IOUtils;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class AddingImage {
   
   public static void main(String args[]) throws IOException {
   
      //creating a presentation 
      XMLSlideShow ppt = new XMLSlideShow();
      
      //creating a slide in it 
      XSLFSlide slide = ppt.createSlide();
      
      //reading an image
      File image = new File("C://POIPPT//boy.jpg");
      
      //converting it into a byte array
      byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
      
      //adding the image to the presentation
      int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
      
      //creating a slide with given picture on it
      XSLFPictureShape pic = slide.createPicture(idx);
      
      //creating a file object 
      File file = new File("addingimage.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out)
      System.out.println("image added successfully");
      out.close();	
   }
}

Save the above Java code as AddingImage.java, and then compile and execute it from the command prompt as follows −

$javac AddingImage.java $java AddingImage

It will compile and execute to generate the following output −

reordering of the slides is done

The presentation with the newly added slide with image appears as follows −

Reading Image

You can get the data of all the pictures using the getAllPictures() method of the XMLSlideShow class. The following program reads the images from a presentation −

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;

public class Readingimage {
  
  public static void main(String args[]) throws IOException {
   
      //open an existing presentation 
      File file = new File("addingimage.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //reading all the pictures in the presentation
      for(XSLFPictureData data : ppt.getAllPictures()){
         
         byte[] bytes = data.getData();
         String fileName = data.getFileName();
         int pictureFormat = data.getPictureType();
         System.out.println("picture name: " + fileName);
         System.out.println("picture format: " + pictureFormat);   
      }	    
      
      //saving the changes to a file
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      out.close();	
   }
}

Save the above Java code as Readingimage.java, and then compile and execute it from the command prompt as follows −

$javac Readingimage.java $java Readingimage

It will compile and execute to generate the following output −

picture name: image1.png
picture format: 6

In this chapter you will learn how to create hyperlinks in a presentation.

Creating Hyperlinks

You can read the hyperlinks in a presentation using the createHyperlink() method of the XSLFTextRun class. Follow the procedure given below to create a hyperlink in a presentation.

Create an empty presentation using the XMLSlideShow class as shown below −

XMLSlideShow ppt = new XMLSlideShow();

빈 슬라이드를 만들고 본문 및 콘텐츠 레이아웃을 사용하여 슬라이드의 텍스트 상자와 본문을 만듭니다.

//create an empty presentation
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

//creating a slide with title and content layout
XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
XSLFSlide slide = ppt.createSlide(slidelayout);

//selection of body place holder
XSLFTextShape body = slide.getPlaceholder(1);

//clear the existing text in the slide
body.clearText();

텍스트 실행 개체를 만들고 아래와 같이 텍스트를 설정합니다.

XSLFTextRun textRun = body.addNewTextParagraph().addNewTextRun();
textRun.setText("Tutorials point");

다음을 사용하여 하이퍼 링크를 만듭니다. createHyperlink() 의 방법 XSLFTextRun 아래와 같이 클래스-

XSLFHyperlink link = textRun.createHyperlink();

다음을 사용하여 링크 주소를 하이퍼 링크로 설정합니다. setAddress() 의 방법 XSLFHyperlink 아래와 같이 클래스-

link.setAddress("http://www.tutorialspoint.com/");

다음은 프레젠테이션에서 하이퍼 링크를 만드는 완전한 프로그램입니다.

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFHyperlink;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class CreatingHyperlinks {

   public static void main(String args[]) throws IOException {
      
      //create an empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //select a layout from specified list
      XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
     
      //creating a slide with title and content layout
      XSLFSlide slide = ppt.createSlide(slidelayout);
      
      //selection of title place holder
      XSLFTextShape body = slide.getPlaceholder(1);
      
      //clear the existing text in the slid
      body.clearText();
      
      //adding new paragraph
      XSLFTextRun textRun = body.addNewTextParagraph().addNewTextRun();
      
      //setting the text
      textRun.setText("Tutorials point");	
      
      //creating the hyperlink
      XSLFHyperlink link = textRun.createHyperlink();
      
      //setting the link address
      link.setAddress("http://www.tutorialspoint.com/");
      
      //create the file object            
      File file = new File("hyperlink.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a file
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();              
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. CreatingHyperlinks.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac CreatingHyperlinks.java $java CreatingHyperlinks

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

slide cretated successfully

본문에 하이퍼 링크가있는 새로 추가 된 슬라이드는 다음과 같습니다.

방법을 사용하여 프레젠테이션에 사용 된 모양의 수를 얻을 수 있습니다. getShapeName()XSLFShape수업. 다음은 프레젠테이션에서 모양을 읽는 프로그램입니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class ReadingShapes {
   
   public static void main(String args[]) throws IOException {
      
      //creating a slideshow 
      File file = new File("shapes.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //get slides 
      XSLFSlide[] slide = ppt.getSlides();
      
      //getting the shapes in the presentation
      System.out.println("Shapes in the presentation:");
      for (int i = 0; i < slide.length; i++){
         
         XSLFShape[] sh = slide[i].getShapes();
         for (int j = 0; j < sh.length; j++){
            
            //name of the shape
            System.out.println(sh[j].getShapeName());
         }
      }
      
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      out.close();	
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. ReadingShapes.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac ReadingShapes.java $java ReadingShapes

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

Shapes in the presentation: 
Rectangle 1
Oval 1
Isosceles Triangle 1

다양한 모양의 새로 추가 된 슬라이드는 다음과 같습니다.

프레젠테이션의 텍스트는 다음 방법을 사용하여 서식을 지정할 수 있습니다. XSLFTextRun수업. 이를 위해서는XSLFTextRun 아래와 같이 슬라이드 레이아웃 중 하나를 선택하여 클래스 개체-

//create the empty presentation 
XMLSlideShow ppt = new XMLSlideShow();

//getting the slide master object
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

//select a layout from specified list
XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);

//creating a slide with title and content layout
XSLFSlide slide = ppt.createSlide(slidelayout);

//selection of title place holder
XSLFTextShape body = slide.getPlaceholder(1);

//clear the existing text in the slide
body.clearText();

//adding new paragraph
XSLFTextParagraph paragraph = body.addNewTextParagraph();

//creating text run object
XSLFTextRun run = paragraph.addNewTextRun();

다음을 사용하여 프레젠테이션의 텍스트 글꼴 크기를 설정할 수 있습니다. setFontSize().

run.setFontColor(java.awt.Color.red);
run.setFontSize(24);

다음 코드 스 니펫은 프레젠테이션의 텍스트에 다양한 서식 스타일 (굵게, 기울임 꼴, 밑줄, 취소 선)을 적용하는 방법을 보여줍니다.

//change the text into bold format
run.setBold(true);

//change the text it to italic format
run.setItalic(true)

// strike through the text
run.setStrikethrough(true);

//underline the text
run.setUnderline(true);

단락 사이에 줄 바꿈을 사용하려면 addLineBreak()XSLFTextParagraph 아래와 같이 클래스-

paragraph.addLineBreak();

아래에 위의 모든 방법을 사용하여 텍스트를 형식화하는 완전한 프로그램이 있습니다.

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class TextFormating {
   
   public static void main(String args[]) throws IOException {
      
      //creating an empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //select a layout from specified list
      XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
      
      //creating a slide with title and content layout
      XSLFSlide slide = ppt.createSlide(slidelayout);
      
      //selection of title place holder
      XSLFTextShape body = slide.getPlaceholder(1);
      
      //clear the existing text in the slide
      body.clearText();
      
      //adding new paragraph
      XSLFTextParagraph paragraph = body.addNewTextParagraph();
      
      //formatting line 1
      
      XSLFTextRun run1 = paragraph.addNewTextRun();
      run1.setText("This is a colored line");      
      
      //setting color to the text
      run1.setFontColor(java.awt.Color.red);      
      
      //setting font size to the text
      run1.setFontSize(24);      
      
      //moving to the next line
      paragraph.addLineBreak();
     
      //formatting line 2
      
      XSLFTextRun run2 = paragraph.addNewTextRun();
      run2.setText("This is a bold line");
      run2.setFontColor(java.awt.Color.CYAN);
      
      //making the text bold
      run2.setBold(true);
      paragraph.addLineBreak();
      
      //formatting line 3
      
      XSLFTextRun run3 = paragraph.addNewTextRun();
      run3.setText(" This is a striked line");
      run3.setFontSize(12);
      
      //making the text italic
      run3.setItalic(true);
      
      //strike through the text
      run3.setStrikethrough(true);
      paragraph.addLineBreak();
       
      //formatting line 4
      
      XSLFTextRun run4 = paragraph.addNewTextRun();
      run4.setText(" This an underlined line");
      run4.setUnderline(true);
      
      //underlining the text
      paragraph.addLineBreak();
      
      //creating a file object
      File file = new File(“TextFormat.pptx”);
      FileOutputStream out = new FileOutputStream(file);
       
      //saving the changes to a file
      ppt.write(out);
      out.close();	 
   }
}

위 코드를 다른 이름으로 저장 TextFormating.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac TextFormating.java $java TextFormating

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

Formatting completed successfully

서식이 지정된 텍스트가있는 슬라이드는 다음과 같이 나타납니다.

다음을 사용하여 여러 프레젠테이션을 병합 할 수 있습니다. importContent() 의 방법 XMLSlideShow수업. 다음은 두 개의 프레젠테이션을 병합하는 완전한 프로그램입니다.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class MergingMultiplePresentations {
   
      public static void main(String args[]) throws IOException {
      
      //creating empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //taking the two presentations that are to be merged 
      String file1 = "presentation1.pptx";
      String file2 = "presentation2.pptx";
      String[] inputs = {file1, file2};
      
      for(String arg : inputs){
      
         FileInputStream inputstream = new FileInputStream(arg);
         XMLSlideShow src = new XMLSlideShow(inputstream);
         
         for(XSLFSlide srcSlide : src.getSlides()) {
         
            //merging the contents
            ppt.createSlide().importContent(srcSlide);
         }
      }
     
      String file3 = "combinedpresentation.pptx";
      
      //creating the file object
      FileOutputStream out = new FileOutputStream(file3);
      
      // saving the changes to a file
      ppt.write(out);
      System.out.println("Merging done successfully");
      out.close();
   }
}

위 코드를 다른 이름으로 저장 MergingMultiplePresentations.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac MergingMultiplePresentations.java $java MergingMultiplePresentations

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

Merging done successfully

다음 스냅 샷은 첫 번째 프레젠테이션을 보여줍니다.

다음 스냅 샷은 두 번째 프레젠테이션을 보여줍니다.

다음은 두 슬라이드를 병합 한 후의 프로그램 출력입니다. 여기에서 함께 병합 된 이전 슬라이드의 내용을 볼 수 있습니다.

프레젠테이션을 이미지 파일로 변환 할 수 있습니다. 다음 프로그램은 이에 대한 방법을 보여줍니다.

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class PptToImage {
   
   public static void main(String args[]) throws IOException {
      
      //creating an empty presentation
      File file=new File("pptToImage.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //getting the dimensions and size of the slide 
      Dimension pgsize = ppt.getPageSize();
      XSLFSlide[] slide = ppt.getSlides();
      
      BufferedImage img = null;
      
      for (int i = 0; i < slide.length; i++) {
         img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
         Graphics2D graphics = img.createGraphics();

         //clear the drawing area
         graphics.setPaint(Color.white);
         graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

         //render
         slide[i].draw(graphics);
         
      }
      
      //creating an image file as output
      FileOutputStream out = new FileOutputStream("ppt_image.png");
      javax.imageio.ImageIO.write(img, "png", out);
      ppt.write(out);
      
      System.out.println("Image successfully created");
      out.close();	
   }
}

위의 Java 코드를 다른 이름으로 저장하십시오. PpttoPNG.java, 다음과 같이 명령 프롬프트에서 컴파일하고 실행하십시오-

$javac PpttoPNG.java $java PpttoPNG

다음 출력을 생성하기 위해 컴파일 및 실행됩니다.

Image created successfully

다음 스냅 샷은 입력으로 주어진 프레젠테이션을 보여줍니다-

다음은 지정된 위치에서 생성 된 이미지의 스냅 샷입니다.