Apache POI PPT - Bố cục Trang trình bày
Trong chương trước, bạn đã biết cách tạo các trang chiếu trống và cách thêm các trang chiếu vào đó. Trong chương này, bạn sẽ học cách lấy danh sách các trang trình bày có sẵn và cách tạo một trang chiếu với các bố cục khác nhau.
Bố cục Trang trình bày có sẵn
Bản trình bày PowerPoint có bố cục trang chiếu và bạn có thể chọn bố cục mong muốn để chỉnh sửa trang chiếu. Trước hết, chúng ta hãy tìm hiểu danh sách tất cả các bố cục slide có sẵn.
Có các trang chiếu cái khác nhau và trong mỗi trang chiếu cái, có một số bố cục trang chiếu.
Bạn có thể lấy danh sách các trang chiếu cái bằng cách sử dụng getSlideMasters() phương pháp của XMLSlideShow lớp học.
Bạn có thể lấy danh sách bố cục trang chiếu từ mỗi trang chiếu cái bằng cách sử dụng getSlideLayouts() phương pháp của XSLFSlideMaster lớp học.
Bạn có thể lấy tên của bố cục trang chiếu từ đối tượng bố cục bằng cách sử dụng getType() phương pháp của XSLFSlideLayout lớp học.
Note- Tất cả các lớp này thuộc gói org.poi.xslf.usermodel .
Dưới đây là chương trình hoàn chỉnh để lấy danh sách các bố cục trang trình bày có sẵn trong 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());
}
}
}
}
Lưu mã Java ở trên dưới dạng SlideLayouts.java , sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac SlideLayouts.java
$java SlideLayouts
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
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
Dưới đây là một số bố cục trang chiếu mẫu có sẵn với MS-Office 360, phiên bản 2013.
Bố cục tiêu đề
Hãy để chúng tôi tạo một trang chiếu trong PPT bằng cách sử dụng bố cục Tiêu đề. Làm theo các bước dưới đây -
Step 1 - Tạo một bản trình bày trống bằng cách khởi tạo XMLSlideShow lớp như hình bên dưới.
XMLSlideShow ppt = new XMLSlideShow();
Step 2 - Nhận danh sách các trang chiếu cái bằng cách sử dụng getSlideMasters()phương pháp. Sau đó, chọn trang chiếu cái mong muốn bằng cách sử dụng chỉ mục như hình dưới đây.
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
Ở đây chúng ta đang nhận được trang chiếu cái mặc định nằm ở vị trí thứ 0 của mảng trang chiếu cái.
Step 3 - Nhận bố cục mong muốn bằng cách sử dụng getLayout() phương pháp của XSLFSlideMasterlớp học. Phương thức này chấp nhận một tham số trong đó bạn phải chuyển một trong các biến tĩnh củaSlideLayoutclass, đại diện cho bố cục mong muốn của chúng tôi. Có một số biến trong lớp này mà mỗi biến đại diện cho một bố cục trang chiếu.
Đoạn mã được cung cấp bên dưới cho thấy cách tạo bố cục tiêu đề -
XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
Step 4 - Tạo một trang chiếu mới bằng cách chuyển một đối tượng bố trí trang chiếu làm tham số.
XSLFSlide slide = ppt.createSlide(titleLayout);
Step 5 - Chọn một trình giữ chỗ bằng cách sử dụng getPlaceholder() phương pháp của XSLFSlidelớp học. Phương thức này chấp nhận một tham số nguyên. Bằng cách đi qua0 với nó, bạn sẽ nhận được XSLFTextShape, sử dụng mà bạn có thể truy cập vùng văn bản tiêu đề của trang chiếu. Đặt tiêu đề bằng phương thức setText () như hình dưới đây.
XSLFTextShape title1 = slide.getPlaceholder(0);
//setting the title init
title1.setText("Tutorials point");
Dưới đây là chương trình hoàn chỉnh để tạo trang chiếu với bố cục Tiêu đề trong bản trình bày -
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();
}
}
Lưu mã Java ở trên dưới dạng TitleLayout.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac TitleLayout.java
$java TitleLayout
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau.
slide created successfully
Tài liệu PPT với trang chiếu bố cục Tiêu đề mới được thêm vào sẽ xuất hiện như sau:
Bố cục tiêu đề và nội dung
Hãy để chúng tôi tạo một slide trong PPT bằng cách sử dụng Tiêu đề và bố cục nội dung. Làm theo các bước dưới đây.
Step 1 - Tạo một bản trình bày trống bằng cách khởi tạo XMLSlideShow lớp như hình bên dưới.
XMLSlideShow ppt = new XMLSlideShow();
Step 2 - Nhận danh sách các trang chiếu cái bằng cách sử dụng getSlideMasters()phương pháp. Chọn trang chiếu cái mong muốn bằng cách sử dụng chỉ mục như hình dưới đây.
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
Ở đây chúng ta đang nhận được trang chiếu cái mặc định nằm ở vị trí thứ 0 của mảng bản chiếu cái.
Step 3 - Nhận bố cục mong muốn bằng cách sử dụng getLayout() phương pháp của XSLFSlideMasterlớp học. Phương thức này chấp nhận một tham số trong đó bạn phải chuyển một trong các biến tĩnh củaSlideLayoutlớp đại diện cho bố cục mong muốn của chúng tôi. Có một số biến trong lớp này đại diện cho bố cục trang chiếu.
Đoạn mã sau cho biết cách tạo tiêu đề và bố cục nội dung -
XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
Step 4 - Tạo một trang chiếu mới bằng cách chuyển đối tượng bố trí trang chiếu làm tham số.
XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);
Step 5 - Chọn một trình giữ chỗ bằng cách sử dụng getPlaceholder() phương pháp của XSLFSlidelớp học. Phương thức này chấp nhận một tham số nguyên. Bằng cách đi qua1 với nó, bạn sẽ nhận được XSLFTextShape, bằng cách sử dụng mà bạn có thể truy cập vùng nội dung của trang chiếu. Đặt tiêu đề bằng phương thức setText () như hình dưới đây.
XSLFTextShape title1 = slide1.getPlaceholder(1);
//setting the title init
title1.setText("Introduction");
Step 6 - Xóa văn bản hiện có trong trang chiếu bằng cách sử dụng clearText() phương pháp của XSLFTextShape lớp học.
body.clearText();
Step 7 - Thêm đoạn văn mới bằng cách sử dụng addNewTextParagraph()phương pháp. Bây giờ, hãy thêm một đoạn chạy văn bản mới vào đoạn văn bằng cách sử dụngaddNewTextRun()phương pháp. Bây giờ để chạy văn bản, hãy thêm văn bản bằng cách sử dụngsetText() như hình dưới đây.
body.addNewTextParagraph().addNewTextRun().setText("this is my first slide body");
Dưới đây là chương trình hoàn chỉnh để tạo trang chiếu với bố cục Tiêu đề trong bản trình bày -
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();
}
}
Lưu mã Java ở trên dưới dạng TitleLayout.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac TitleLayout.java
$java TitleLayout
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
slide created successfully
Tài liệu PPT với trang chiếu bố cục Tiêu đề mới được thêm vào sẽ xuất hiện như sau:
Theo cách tương tự, bạn cũng có thể tạo các trang trình bày với các bố cục khác nhau.