Apache POI PPT - Hướng dẫn nhanh
Đôi khi, một ứng dụng phần mềm được yêu cầu để tạo báo cáo ở định dạng tệp Microsoft Office. Đôi khi, một ứng dụng thậm chí còn phải nhận các tệp MS-Office làm dữ liệu đầu vào.
Bất kỳ lập trình viên Java nào muốn tạo tệp MS Office dưới dạng đầu ra đều phải sử dụng API chỉ đọc và được xác định trước để làm như vậy.
Apache POI là gì?
Apache POI là một API phổ biến cho phép các lập trình viên tạo, sửa đổi và hiển thị các tệp MS-Office bằng các chương trình Java. Nó là một thư viện mã nguồn mở được phát triển và phân phối bởi Apache Software Foundation. Nó chứa các lớp và phương thức để giải mã dữ liệu đầu vào của người dùng hoặc một tệp thành tài liệu MS Office.
Các thành phần của Apache POI
Apache POI chứa các lớp và phương thức để hoạt động trên tất cả các tài liệu OLE2 Compound của MS-Office. Danh sách các thành phần của API này được đưa ra dưới đây:
POIFS (Poor Obfuscation Implementation File System)- Thành phần này là yếu tố cơ bản của tất cả các yếu tố POI khác. Nó được sử dụng để đọc các tệp khác nhau một cách rõ ràng.
HSSF (Horrible SpreadSheet Format) - Nó được sử dụng để đọc và ghi định dạng .xls của các tệp MS-Excel.
XSSF (XML SpreadSheet Format) - Nó được sử dụng cho định dạng tệp .xlsx của MS-Excel.
HPSF (Horrible Property Set Format) - Nó được sử dụng để trích xuất các tập thuộc tính của các tệp MS-Office.
HWPF (Horrible Word Processor Format) - Nó được sử dụng để đọc và viết .doc các tập tin mở rộng của MS-Word.
XWPF (XML Word Processor Format) - Nó được sử dụng để đọc và ghi các tập tin mở rộng .docx của MS-Word.
HSLF (Horrible Slide Layout Format) - Nó được sử dụng để đọc, tạo và chỉnh sửa các bản trình bày PowerPoint.
HDGF (Horrible DiaGram Format) - Nó chứa các lớp và phương thức cho các tệp nhị phân MS-Visio.
HPBF (Horrible PuBlisher Format) - Nó được sử dụng để đọc và ghi các tệp MS-Publisher.
Hướng dẫn này hướng dẫn bạn quy trình làm việc trên bản trình bày Microsoft PowerPoint bằng Java. Do đó, cuộc thảo luận chỉ giới hạn trongXSLF component.
Note - Các phiên bản cũ hơn của POI hỗ trợ các định dạng tệp nhị phân như doc, xls, ppt, v.v. Phiên bản 3.5 trở đi, POI hỗ trợ các định dạng tệp OOXML của MS-Office như docx, xlsx, pptx, v.v.
Chương này sẽ đưa bạn qua một số hương vị của Java PowerPoint API và các tính năng của chúng. Có nhiều nhà cung cấp cung cấp các API liên quan đến Java PPT; một số trong số chúng được xem xét trong chương này.
Aspose Slides dành cho Java
Trang trình bày Aspose cho Java là một API PPT Java được cấp phép thuần túy, được phát triển và phân phối bởi nhà cung cấp Aspose. Phiên bản mới nhất của API này là 8.1.2, được phát hành vào tháng 7 năm 2014. Đây là một API phong phú và nặng (kết hợp giữa các lớp Java thuần túy và các lớp AWT) để thiết kế thành phần PPT có thể đọc, viết và quản lý các trang trình bày.
Các ứng dụng phổ biến của API này như sau:
- Tạo bản trình bày động
- Kết xuất và in các bản trình bày có độ trung thực cao
- Tạo, chỉnh sửa, chuyển đổi và in bản trình bày
Apache POI
Apache POI là một thư viện mã nguồn mở 100% được cung cấp bởi Apache Software Foundation. Hầu hết các nhà phát triển ứng dụng quy mô vừa và nhỏ phụ thuộc rất nhiều vào Apache POI (HSLF + XSLF). Nó hỗ trợ tất cả các tính năng cơ bản của thư viện PPT; tuy nhiên, kết xuất và trích xuất văn bản là các tính năng chính của nó. Dưới đây là kiến trúc của Apache POI cho PPT.
Chương này sẽ hướng dẫn bạn quá trình thiết lập Apache POI trên các hệ thống chạy Windows và Linux. Apache POI có thể dễ dàng được cài đặt và tích hợp với môi trường Java hiện tại của bạn, sau một vài bước đơn giản mà không cần bất kỳ thủ tục thiết lập phức tạp nào. Cần có quản trị người dùng để cài đặt.
yêu cầu hệ thống
JDK | Java SE 2 JDK 1.5 trở lên |
Ký ức | RAM 1 GB (khuyến nghị) |
Dung lượng đĩa | Không có yêu cầu tối thiểu |
Phiên bản hệ điều hành | Windows XP trở lên, Linux |
Bây giờ chúng ta hãy tiến hành các bước cài đặt Apache POI.
Bước 1: Xác minh cài đặt Java của bạn
Trước hết, bạn cần cài đặt Bộ phát triển phần mềm Java (SDK) trên hệ thống của mình. Để xác minh điều này, hãy thực hiện bất kỳ lệnh nào trong hai lệnh sau tùy thuộc vào nền tảng bạn đang làm việc.
Nếu cài đặt Java đã được thực hiện đúng cách, thì nó sẽ hiển thị phiên bản hiện tại và đặc điểm kỹ thuật của cài đặt Java của bạn. Đầu ra mẫu được đưa ra trong bảng sau.
Nền tảng | Chỉ huy | Đầu ra mẫu |
---|---|---|
các cửa sổ | Mở Command Console và nhập - \>java –version |
Phiên bản Java "1.7.0_60" Thời gian chạy Java (TM) SE Môi trường (bản dựng 1.7.0_60-b19) Máy chủ 64-bit Java Hotspot (TM) VM (bản dựng 24.60-b09, chế độ hỗn hợp) |
Linux | Mở Command terminal và nhập - $java –version |
phiên bản java "1.7.0_25" Mở môi trường thời gian chạy JDK (rhel-2.3.10.4.el6_4-x86_64) Mở JDK 64-Bit Server VM (bản dựng 23.7-b01, chế độ hỗn hợp) |
Chúng tôi giả định rằng những người đọc hướng dẫn này đã cài đặt Java SDK phiên bản 1.7.0_60 trên hệ thống của họ.
Trong trường hợp bạn không có Java SDK, hãy tải xuống phiên bản hiện tại của nó từ https://www.oracle.com/technetwork/java/javase/downloads/index.html và cài đặt nó.
Bước 2: Đặt Môi trường Java của bạn
Đặt biến môi trường JAVA_HOME trỏ đến vị trí thư mục cơ sở nơi Java được cài đặt trên máy của bạn. Ví dụ,
Nền tảng | Sự miêu tả |
---|---|
các cửa sổ | Đặt JAVA_HOME thành C: \ ProgramFiles \ java \ jdk1.7.0_60 |
Linux | Xuất JAVA_HOME = / usr / local / java-current |
Nối đường dẫn đầy đủ của vị trí trình biên dịch Java vào Đường dẫn hệ thống.
Nền tảng | Sự miêu tả |
---|---|
các cửa sổ | Nối chuỗi "C: \ Program Files \ Java \ jdk1.7.0_60 \ bin" vào cuối biến hệ thống PATH. |
Linux | Xuất PATH = $ PATH: $ JAVA_HOME / bin / |
Thực hiện lệnh java -version từ dấu nhắc lệnh như đã giải thích ở trên.
Bước 3: Cài đặt Apache POI Library
Tải xuống phiên bản Apache POI mới nhất từ https://poi.apache.org/download.htmlvà giải nén nội dung của nó vào một thư mục mà từ đó các thư viện bắt buộc có thể được liên kết với chương trình Java của bạn. Giả sử các tệp được thu thập trong một thư mục trên ổ C.
Các hình ảnh sau đây hiển thị các thư mục và cấu trúc tệp bên trong thư mục đã tải xuống -
Thêm đường dẫn hoàn chỉnh của năm jars như được đánh dấu trong hình trên vào CLASSPATH.
Nền tảng | Sự miêu tả |
---|---|
các cửa sổ | Nối các chuỗi sau vào cuối biến người dùng 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;.;” |
Linux | Xuất 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
Sau đây là tệp pom.xml để chạy các chương trình trong hướng dẫn này.
<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>
Trong chương này, chúng ta sẽ tìm hiểu về một số lớp và phương thức trong Apache POI API rất quan trọng để hoạt động trên các tệp PPT bằng các chương trình Java.
Bài thuyết trình
Để tạo và quản lý một bản trình bày, bạn có một lớp gọi là XMLSlideShow trong gói org.apache.poi.xslf.usermodel . Dưới đây là một số phương thức quan trọng và một hàm tạo của lớp này.
Class - XMLSlideShow
Package - org.apache.poi.xslf.usermodel
S.Không | Hàm tạo & Mô tả |
---|---|
1 | XMLSlideShow(java.io.InputStream inputStream) Bạn có thể khởi tạo lớp này bằng cách truyền một đối tượng lớp inputstream cho nó. |
S.Không | Phương pháp & Mô tả |
---|---|
1 | int addPicture (byte[] pictureData, int format) Sử dụng phương pháp này, bạn có thể thêm ảnh vào bản trình bày. |
2 | XSLFSlide createSlide() Tạo trang chiếu trống trong bản trình bày. |
3 | XSLFSlide createSlide(XSLFSlideLayout layout) Tạo trang trình bày với bố cục trang trình bày nhất định. |
4 | java.util.List <XSLFPictureData> getAllPictures() Trả về một mảng tất cả các ảnh trong bản trình bày. |
5 | java.awt.Dimension getPageSize() Sử dụng phương pháp này, bạn có thể biết kích thước trang hiện tại. |
6 | XSLFSlideMaster[] getSlideMasters() Trả về mảng của tất cả các trang trình bày trong bản trình bày. |
7 | XSLFSlide[] getSlides() Trả về tất cả các trang trình bày trong bản trình bày. |
số 8 | XSLFSlide removeSlide(int index) Sử dụng phương pháp này, bạn có thể xóa trang chiếu khỏi bản trình bày. |
9 | void setPageSize(java.awt.Dimension pgSize) Sử dụng phương pháp này, bạn có thể đặt lại kích thước trang. |
10 | void setSlideOrder(XSLFSlide slide, int newIndex) Sử dụng phương pháp này, bạn có thể sắp xếp lại thứ tự các trang trình bày. |
Cầu trượt
Để tạo và quản lý một trang chiếu trong bản trình bày, các phương pháp của XSLFSlidelớp được sử dụng. Một số phương thức quan trọng của lớp này được đề cập dưới đây.
Class - XSLFSlide
Package - org.apache.poi.xslf.usermodel
S.Không | Phương pháp & Mô tả |
---|---|
1 | XSLFBackground getBackground() Trả về XSLFBackgroundđối tượng có thể được sử dụng để truy xuất các chi tiết như màu sắc và neo của nền của trang chiếu. Bạn cũng có thể vẽ các hình dạng trong trang chiếu bằng đối tượng này. |
2 | XSLFSlideLayout getSlideLayout() Cung cấp quyền truy cập vào XSLFSlideLayout đối tượng của trang chiếu hiện tại. |
3 | XSLFSlideMaster getSlideMaster() Cung cấp quyền truy cập vào trang chiếu cái của trang chiếu hiện tại. |
4 | XSLFTheme getTheme() Trả về XSLFTheme đối tượng của trang chiếu hiện tại. |
5 | java.lang.String getTitle() Trả về tiêu đề của trang chiếu hiện tại. |
6 | XSLFSlide importContent(XSLFSheet src) Sao chép nội dung của một trang chiếu khác vào trang chiếu này. |
Slide Master
Nó là thành phần của bản trình bày có các bố cục slide khác nhau. CácXSLFSlideMasterlớp cung cấp cho bạn quyền truy cập vào nó. Dưới đây là một số phương thức quan trọng của lớp này.
Class - XSLFSlideMaster
Package - org.apache.poi.xslf.usermodel
S.Không | Phương pháp & Mô tả |
---|---|
1 | XSLFBackground getBackground() Trả về nền chung của trang chiếu cái. |
2 | XSLFSlideLayout getLayout(SlideLayout type) Trả về đối tượng XSLFSlideLayout. |
3 | XSLFSlideLayout[] getSlideLayouts() Trả về tất cả các bố cục trang chiếu trong trang chiếu cái này. |
Bố cục trang trình bày
Thư viện POI có một lớp được gọi là XSLFSlideLayout, bằng cách sử dụng mà bạn có thể quản lý bố cục của trang chiếu.
Class - XSLFSlideLayout
Package - org.apache.poi.xslf.usermodel
S.Không | Phương pháp & Mô tả |
---|---|
1 | void copyLayout(XSLFSlide slide) Phương pháp này sẽ sao chép các chỗ dành sẵn từ bố cục này vào trang chiếu đã cho. |
Đoạn văn bản
Bạn có thể ghi nội dung vào trang chiếu bằng XSLFTextParagraphlớp học. Dưới đây đề cập là một số phương thức quan trọng của lớp này.
Class - XSLFTextParagraph
Package - org.apache.poi.xslf.usermodel
S.Không | Phương pháp & Mô tả |
---|---|
1 | XSLFTextRun addLineBreak() Chèn ngắt dòng trong một đoạn văn. |
2 | XSLFTextRun addNewTextRun() Thêm một dòng văn bản mới trong một đoạn văn. |
3 | void setBulletAutoNumber(ListAutoNumber scheme, int startAt) Áp dụng các dấu đầu dòng được đánh số tự động cho đoạn văn. |
4 | void setIndent(double value) Đặt thụt lề cho văn bản trong đoạn văn. |
5 | void setLeftMargin(double value) Phương pháp này được sử dụng để thêm lề trái của đoạn văn. |
6 | void setLineSpacing(double linespacing) Phương pháp này được sử dụng để thiết lập khoảng cách dòng trong đoạn văn. |
7 | void setTextAlign(TextAlign align) Phương pháp này được sử dụng để đặt căn chỉnh sẽ được đặt cho đoạn văn. |
Chạy văn bản
Đây là mức phân tách văn bản thấp nhất trong nội dung văn bản. Bạn cóXSLFTextRunlớp để quản lý việc chạy văn bản của một đoạn văn. Dưới đây đề cập là một số phương thức quan trọng của lớp này.
Class - XSLFTextParagraph
Package - org.apache.poi.xslf.usermodel
S.Không | Phương pháp & Mô tả |
---|---|
1 | XSLFHyperlink createHyperlink() Tạo siêu kết nối trong bản trình bày. |
2 | XSLFHyperlink getHyperlink() Phương pháp này được sử dụng để lấy siêu liên kết. |
3 | java.lang.String getText() Trả về giá trị của nút Văn bản này dưới dạng một chuỗi Java. |
4 | void setBold(boolean bold) Phương pháp này được sử dụng để đặt văn bản ở dạng Bold. |
5 | void setCharacterSpacing(double spc) Đặt khoảng cách giữa các ký tự trong một đoạn chạy văn bản. |
6 | void setFontColor(java.awt.Color color) Đặt màu phông chữ của văn bản. |
7 | void setFontSize(double fontSize) Đặt kích thước phông chữ của văn bản. |
số 8 | void setItalic(boolean italic) Phương pháp này được sử dụng để làm cho đoạn văn được in nghiêng. |
9 | void setStrikethrough(boolean strike) Phương pháp này được sử dụng để định dạng một loạt văn bản dưới dạng văn bản gạch ngang. |
10 | void setSubscript(boolean flag) Phương pháp này được sử dụng để định dạng văn bản dưới dạng chỉ số dưới. |
11 | void setSuperscript(boolean flag) Phương thức này được sử dụng để định dạng văn bản trong lần chạy này dưới dạng chỉ số trên. |
12 | void setText(java.lang.String text) Phương pháp này được sử dụng để thiết lập văn bản trong một lần chạy. |
13 | void setUnderline(boolean underline) Phương pháp này được sử dụng để gạch dưới văn bản trong một đoạn chạy văn bản. |
Hình dạng văn bản
Trong PPT, chúng ta có các hình dạng có thể giữ văn bản bên trong chúng. Chúng tôi có thể quản lý chúng bằng cách sử dụngXSLFTextShapelớp học. Dưới đây là một số phương thức quan trọng của lớp này.
Class - XSLFTextShape
Package - org.apache.poi.xslf.usermodel
S.Không | Phương pháp & Mô tả |
---|---|
1 | void setPlaceholder(Placeholder placeholder) Sử dụng phương pháp này, bạn có thể chọn một giá đỡ. |
2 | Placeholder getTextType() Trả về loại trình giữ chỗ hiện tại. |
3 | void clearText() Xóa vùng văn bản của hình dạng văn bản hiện tại. |
4 | XSLFTextParagraph addNewTextParagraph() Thêm một đoạn mới chạy vào một hình dạng. |
5 | void drawContent(java.awt.Graphics2D graphics) Phương pháp này cho phép bạn vẽ bất kỳ nội dung nào trên trang chiếu. |
HyperLink
Thư viện POI có một lớp được gọi là XSLFHyperlinksử dụng mà bạn có thể tạo siêu kết nối trong bản trình bày. Dưới đây là một số phương thức quan trọng của lớp này.
Class - XSLFHyperlink
Package - org.apache.poi.xslf.usermodel
S.Không | Phương pháp & Mô tả |
---|---|
1 | java.net.URI getTargetURL() Trả về URL hiện có trong một slide của bản trình bày. |
2 | void setAddress(java.lang.String address) Phương pháp này được sử dụng để đặt địa chỉ thành một URL. |
3 | void setAddress(XSLFSlide slide) Đặt địa chỉ cho URL có trong trang trình bày. |
Nói chung, chúng tôi sử dụng MS-PowerPoint để tạo bản trình bày. Bây giờ chúng ta hãy xem cách tạo bản trình bày bằng Java. Sau khi hoàn thành chương này, bạn sẽ có thể tạo các bản trình bày MS-PowerPoint mới và mở các PPT hiện có bằng chương trình Java của mình.
Tạo bản trình bày trống
Để tạo một bản trình bày trống, bạn phải khởi tạo XMLSlideShowlớp của gói org.poi.xslf.usermodel -
XMLSlideShow ppt = new XMLSlideShow();
Lưu các thay đổi vào tài liệu PPT bằng cách sử dụng FileOutputStream lớp học -
File file = new File("C://POIPPT//Examples//example1.pptx");
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
Dưới đây là chương trình hoàn chỉnh để tạo bản trình bày MS-PowerPoint trống.
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()
}
}
Lưu mã Java ở trên dưới dạng CreatePresentation.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac CreatePresentation.java $java CreatePresentation
Nếu môi trường hệ thống của bạn được định cấu hình với thư viện POI, nó sẽ biên dịch và thực thi để tạo tệp PPT trống có tên example1.pptx trong thư mục hiện tại của bạn và hiển thị kết quả sau trên dấu nhắc lệnh:
Presentation created successfully
Tài liệu PowerPoint trống xuất hiện như sau:
Chỉnh sửa bản trình bày hiện có
Để mở một bản trình bày hiện có, hãy khởi tạo XMLSlideShow lớp và vượt qua FileInputStream đối tượng của tệp sẽ được chỉnh sửa, như một đối số cho XMLSlideShow constructor.
File file = new File(“C://POIPPT//Examples//example1.pptx”);
FileInputstream inputstream = new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(inputstream);
Bạn có thể thêm các trang trình bày vào bản trình bày bằng cách sử dụng createSlide()phương thức của lớp XMLSlideShow nằm trong gói org.poi.xslf.usermodel .
XSLFSlide slide1 = ppt.createSlide();
Dưới đây là chương trình hoàn chỉnh để mở và thêm các trang trình bày vào PPT hiện có -
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();
}
}
Lưu mã Java ở trên dưới dạng EditPresentation.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac EditPresentation.java $java EditPresentation
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
slides successfully added
Tài liệu PPT đầu ra với các trang trình bày mới được thêm vào trông như sau:
Sau khi thêm các trang chiếu vào PPT, bạn có thể thêm, thực hiện, đọc và ghi các thao tác trên các trang chiếu.
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 chiếu 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 chính, 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 chiếu 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 slide 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 trong đó mỗi biến đại diện cho một bố cục trang chiếu.
Đoạn mã đưa ra bên dưới cho biết 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, bằng cách 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 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ủ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.
Sau khi hoàn thành chương này, bạn sẽ có thể xóa, sắp xếp lại và thực hiện các thao tác đọc và ghi trên một trang chiếu.
Thay đổi trang trình bày
Chúng ta có thể thay đổi kích thước trang của một trang chiếu bằng cách sử dụng setPageSize() phương pháp của XMLSlideShow lớp học.
Ban đầu hãy tạo một bản trình bày như hình dưới đây:
File file = new File("C://POIPPT//Examples// TitleAndContentLayout.pptx");
//create presentation
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
Nhận kích thước của trang trình bày hiện tại bằng cách sử dụng getPageSize() phương pháp của XMLSlideShow lớp học.
java.awt.Dimension pgsize = ppt.getPageSize();
Đặt kích thước của trang bằng cách sử dụng setPageSize() phương pháp.
ppt.setPageSize(new java.awt.Dimension(1024, 768));
Dưới đây là chương trình hoàn chỉnh để thay đổi kích thước của một trang chiếu:
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();
}
}
Lưu mã Java ở trên dưới dạng ChangingSlide.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac ChangingSlide.java $java ChangingSlide
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau.
current page size of the presentation is :
width :720
height :540
slide size changed to given dimensions
Dưới đây là ảnh chụp nhanh của bản trình bày trước khi thay đổi kích thước trang chiếu -
Trang chiếu sẽ xuất hiện như sau sau khi thay đổi kích thước của nó:
Sắp xếp lại trang trình bày
Bạn có thể đặt thứ tự trang chiếu bằng cách sử dụng setSlideOrder()phương pháp. Dưới đây là quy trình để thiết lập thứ tự của các slide.
Mở tài liệu PPT hiện có như hình dưới đây -
File file = new File("C://POIPPT//Examples//example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
Nhận các trang trình bày bằng cách sử dụng getSlides() như hình dưới đây -
XSLFSlide[] slides = ppt.getSlides();
Chọn một trang chiếu từ mảng các trang chiếu và thay đổi thứ tự bằng cách sử dụng setSlideOrder() như hình dưới đây -
//selecting the fourth slide
XSLFSlide selectesdslide = slides[4];
//bringing it to the top
ppt.setSlideOrder(selectesdslide, 1);
Dưới đây là chương trình hoàn chỉnh để sắp xếp lại các trang trình bày trong bản trình bày -
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();
}
}
Lưu mã Java ở trên dưới dạng ReorderSlide.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac ReorderSlide.java $java ReorderSlide
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau.
Reordering of the slides is done
Dưới đây là ảnh chụp nhanh của bản trình bày trước khi sắp xếp lại các trang trình bày -
Sau khi sắp xếp lại thứ tự các slide, bản trình bày sẽ xuất hiện như sau. Ở đây chúng tôi đã chọn slide có hình ảnh và chuyển nó lên trên cùng.
Xóa trang trình bày
Bạn có thể xóa các trang trình bày bằng cách sử dụng removeSlide()phương pháp. Làm theo các bước dưới đây để xóa các trang trình bày.
Mở bản trình bày hiện có bằng cách sử dụng XMLSlideShow lớp như hình dưới đây -
File file = new File("C://POIPPT//Examples//image.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
Xóa trang trình bày được yêu cầu bằng cách sử dụng removeSlide()phương pháp. Phương thức này chấp nhận một tham số nguyên. Chuyển chỉ mục của trang chiếu sẽ được xóa vào phương pháp này.
ppt.removeSlide(1);
Dưới đây là chương trình để xóa các trang trình bày khỏi bản trình bày -
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();
}
}
Lưu mã Java ở trên dưới dạng Deleteslide.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac Deleteslide.java $java Deleteslide
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
reordering of the slides is done
Ảnh chụp nhanh bên dưới là của bản trình bày trước khi xóa trang chiếu -
Sau khi xóa trang chiếu, bản trình bày sẽ xuất hiện như sau:
Trong chương này, bạn sẽ học cách thêm hình ảnh vào PPT và cách đọc hình ảnh từ nó.
Thêm hình ảnh
Bạn có thể thêm hình ảnh vào bản trình bày bằng cách sử dụng createPicture() phương pháp của XSLFSlide. Phương thức này chấp nhận hình ảnh ở dạng định dạng mảng byte. Do đó, bạn phải tạo một mảng byte của hình ảnh sẽ được thêm vào bản trình bày.
Làm theo quy trình đã cho để thêm hình ảnh vào bản trình bày. Tạo một trình chiếu trống bằngXMLSlideShow như hình dưới đây -
XMLSlideShow ppt = new XMLSlideShow();
Tạo một bản trình bày trống trong đó bằng cách sử dụng createSlide().
XSLFSlide slide = ppt.createSlide();
Đọc tệp hình ảnh sẽ được thêm và chuyển đổi nó thành mảng byte bằng cách sử dụng IOUtils.toByteArray() sau đó IOUtils lớp như hình dưới đây -
//reading an image
File image = new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
Thêm hình ảnh vào bản trình bày bằng addPicture(). Phương thức này chấp nhận hai biến: định dạng mảng byte của hình ảnh sẽ được thêm vào và biến tĩnh đại diện cho định dạng tệp của hình ảnh. Việc sử dụngaddPicture() phương pháp được hiển thị bên dưới -
int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
Nhúng hình ảnh vào trang chiếu bằng createPicture() như hình dưới đây -
XSLFPictureShape pic = slide.createPicture(idx);
Dưới đây là chương trình hoàn chỉnh để thêm hình ảnh vào trang chiếu trong bản trình bày -
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();
}
}
Lưu mã Java ở trên dưới dạng AddingImage.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac AddingImage.java $java AddingImage
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
reordering of the slides is done
Bản trình bày với trang chiếu mới được thêm vào với hình ảnh sẽ xuất hiện như sau:
Đọc ảnh
Bạn có thể lấy dữ liệu của tất cả các hình ảnh bằng cách sử dụng getAllPictures() phương pháp của XMLSlideShowlớp học. Chương trình sau đây đọc các hình ảnh từ một bản trình bày -
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();
}
}
Lưu mã Java ở trên dưới dạng Readingimage.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac Readingimage.java $java Readingimage
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
picture name: image1.png
picture format: 6
Trong chương này, bạn sẽ học cách tạo siêu liên kết trong một bài thuyết trình.
Tạo siêu liên kết
Bạn có thể đọc các siêu liên kết trong bản trình bày bằng cách sử dụng createHyperlink() phương pháp của XSLFTextRunlớp học. Làm theo quy trình dưới đây để tạo siêu kết nối trong bản trình bày.
Tạo một bản trình bày trống bằng cách sử dụng XMLSlideShow lớp như hình dưới đây -
XMLSlideShow ppt = new XMLSlideShow();
Tạo trang chiếu trống và tạo hộp văn bản và nội dung của trang chiếu bằng cách sử dụng bố cục nội dung và nội dung.
//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();
Tạo một đối tượng chạy văn bản và đặt văn bản cho nó như hình dưới đây -
XSLFTextRun textRun = body.addNewTextParagraph().addNewTextRun();
textRun.setText("Tutorials point");
Tạo siêu kết nối bằng cách sử dụng createHyperlink() phương pháp của XSLFTextRun lớp như hình dưới đây -
XSLFHyperlink link = textRun.createHyperlink();
Đặt địa chỉ liên kết thành siêu kết nối bằng cách sử dụng setAddress() phương pháp của XSLFHyperlink lớp như hình dưới đây -
link.setAddress("http://www.tutorialspoint.com/");
Dưới đây là chương trình hoàn chỉnh để tạo siêu kết nối 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.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();
}
}
Lưu mã Java ở trên dưới dạng CreatingHyperlinks.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac CreatingHyperlinks.java $java CreatingHyperlinks
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
slide cretated successfully
Trang trình bày mới được thêm vào với siêu liên kết trong nội dung của nó trông như sau:
Bạn có thể đếm số lượng hình dạng được sử dụng trong bản trình bày bằng phương pháp getShapeName() sau đó XSLFShapelớp học. Dưới đây là chương trình để đọc các hình dạng từ một bản trình bày -
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();
}
}
Lưu mã Java ở trên dưới dạng ReadingShapes.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac ReadingShapes.java $java ReadingShapes
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau.
Shapes in the presentation:
Rectangle 1
Oval 1
Isosceles Triangle 1
Trang trình bày mới được thêm vào với các hình dạng khác nhau xuất hiện như sau:
Văn bản trong bản trình bày có thể được định dạng bằng các phương pháp của XSLFTextRunlớp học. Để làm được điều đó, bạn phải tạoXSLFTextRun đối tượng lớp bằng cách chọn một trong các bố cục trang chiếu như hình dưới đây -
//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();
Bạn có thể đặt kích thước phông chữ của văn bản trong bản trình bày bằng setFontSize().
run.setFontColor(java.awt.Color.red);
run.setFontSize(24);
Đoạn mã sau cho biết cách áp dụng các kiểu định dạng khác nhau (đậm, nghiêng, gạch dưới, gạch ngang) cho văn bản trong bản trình bày.
//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);
Để ngắt dòng giữa các đoạn văn, hãy sử dụng addLineBreak() sau đó XSLFTextParagraph lớp như hình dưới đây -
paragraph.addLineBreak();
Dưới đây là chương trình hoàn chỉnh để định dạng văn bản bằng tất cả các phương pháp trên -
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();
}
}
Lưu mã trên dưới dạng TextFormating.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac TextFormating.java $java TextFormating
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
Formatting completed successfully
Trang chiếu với văn bản được định dạng sẽ xuất hiện như sau:
Bạn có thể hợp nhất nhiều bản trình bày bằng cách sử dụng importContent() phương pháp của XMLSlideShowlớp học. Dưới đây là chương trình hoàn chỉnh để hợp nhất hai bản trình bày -
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();
}
}
Lưu mã trên dưới dạng MergingMultiplePresentations.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac MergingMultiplePresentations.java $java MergingMultiplePresentations
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
Merging done successfully
Ảnh chụp nhanh sau đây cho thấy bản trình bày đầu tiên -
Ảnh chụp nhanh sau đây cho thấy bản trình bày thứ hai -
Dưới đây là kết quả đầu ra của chương trình sau khi hợp nhất hai trang chiếu. Tại đây bạn có thể xem nội dung của các trang trình bày trước đó được hợp nhất với nhau.
Bạn có thể chuyển đổi bản trình bày thành tệp hình ảnh. Chương trình sau đây cho biết làm thế nào để đi về nó.
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();
}
}
Lưu mã Java ở trên dưới dạng PpttoPNG.java, sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau:
$javac PpttoPNG.java $java PpttoPNG
Nó sẽ biên dịch và thực thi để tạo ra kết quả sau:
Image created successfully
Ảnh chụp nhanh sau đây cho thấy bản trình bày được cung cấp dưới dạng đầu vào -
Dưới đây là ảnh chụp nhanh của hình ảnh được tạo tại vị trí được chỉ định.