บทนำ

Aspose.Slides FOSS for Java is now available on Maven Central: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx ไฟล์ทั้งหมดใน Java โดยไม่มีการพึ่งพา Microsoft Office หรือ runtime ที่เป็นกรรมสิทธิ์ใด ๆ.

ไลบรารีนี้ออกแบบมาสำหรับนักพัฒนาที่ต้องการสร้างหรือจัดการไฟล์การนำเสนอโดยโปรแกรม: ทำอัตโนมัติชุดสไลด์จากข้อมูล, ดึงข้อความและเมตาดาต้าจากไฟล์ PPTX ที่อัปโหลด, สร้างไพป์ไลน์การรายงานที่อิงการนำเสนอ, หรือฝังการสร้างการนำเสนอเข้าแอปพลิเคชัน Spring Boot. เนื่องจาก aspose-slides-foss เป็น Java แท้ ๆ จึงสามารถปรับใช้ได้เหมือนกันบน Windows, macOS, Linux และคอนเทนเนอร์ Docker.

คุณลักษณะหลัก

  • รองรับ PPTX แบบรอบเต็ม: เปิดไฟล์ใดก็ได้ .pptx ไฟล์, แก้ไขเนื้อหา, และบันทึกกลับโดยไม่สูญเสียส่วน XML ที่ไม่รู้จักซึ่งไลบรารียังไม่เข้าใจ.
  • การจัดการสไลด์: เพิ่ม, ลบ, และวนซ้ำสไลด์โดยใช้ prs.getSlides(); การนำเสนอจะเริ่มด้วยสไลด์เปล่า 1 แผ่นหลังจาก new Presentation().
  • AutoShapes, ตาราง, และคอนเนคเตอร์: แทรกรูปทรงผ่าน slide.getShapes().addAutoShape(), ข้อมูลตารางผ่าน slide.getShapes().addTable(), และคอนเนคเตอร์ภาพระหว่างรูปทรงผ่าน slide.getShapes().addConnector().
  • การจัดรูปแบบข้อความแบบ Rich Text: จัดรูปแบบข้อความในระดับอักขระด้วย PortionFormat: ขนาดฟอนต์, ตัวหนา, ตัวเอียง, ขีดเส้นใต้, และสี ARGB ผ่าน FillType.SOLID และ ColorFormat.
  • ประเภทการเติม: ใช้ FillType.SOLID, GRADIENT, PATTERN, หรือ PICTURE เติมเต็มให้กับรูปทรงใดก็ได้.
  • เอฟเฟกต์ภาพ: เงานอก, แสงเรืองแสง, ขอบนุ่ม, เบลอ, การสะท้อน, และเงาภายในผ่าน shape.getEffectFormat().
  • 3D formatting: Bevel, camera, light rig, material, และ extrusion depth ผ่าน shape.getThreeDFormat().
  • บันทึกของผู้พูด: แนบข้อความบันทึกไปยังแต่ละสไลด์ผ่าน getNotesSlideManager().addNotesSlide().
  • คอมเมนต์แบบเธรด: เพิ่มคอมเมนต์พร้อมข้อมูลเมตาของผู้เขียนและตำแหน่งสไลด์.
  • ภาพฝังในเอกสาร: ฝังจากเส้นทางไฟล์, ไบต์, หรือ InputStream.
  • คุณสมบัติของเอกสาร: อ่านและเขียน core, app, และ custom properties.

เริ่มต้นใช้งาน

เพิ่มการพึ่งพา Maven. จำเป็นต้องใช้ Java 21 หรือใหม่กว่า.

<dependency>
    <groupId>org.aspose.slides.foss</groupId>
    <artifactId>aspose-slides-foss</artifactId>
    <version>1.0.0</version>
</dependency>

สร้างการนำเสนอแรกของคุณด้วยรูปทรงและบันทึกมัน:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

public class HelloSlides {
    public static void main(String[] args) {
        try (Presentation prs = new Presentation()) {
            ISlide slide = prs.getSlides().get(0);
            IAutoShape shape = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 50, 400, 120
            );
            shape.addTextFrame("Hello from Aspose.Slides FOSS!");
            prs.save("hello.pptx");
        }
    }
}

ควรใช้เสมอ Presentation ภายในบล็อก try-with-resources; สิ่งนี้ทำให้แน่ใจว่าทรัพยากรภายในทั้งหมดจะถูกปล่อยเมื่อบล็อกสิ้นสุด.

ตัวอย่างการจัดรูปแบบข้อความ

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation()) {
    IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 500, 150
    );
    ITextFrame tf = shape.addTextFrame("Bold heading in corporate blue");
    IPortionFormat fmt = tf.getParagraphs().get(0).getPortions().get(0).getPortionFormat();
    fmt.setFontHeight(28);
    fmt.setFontBold(NullableBool.TRUE);
    fmt.getFillFormat().setFillType(FillType.SOLID);
    fmt.getFillFormat().getSolidFillColor().setColor(new Color(0, 70, 127));
    prs.save("formatted.pptx");
}

ข้อจำกัดปัจจุบัน

ส่วนต่อไปนี้จะทำให้เกิดข้อยกเว้น UnsupportedOperationException ในรุ่นนี้:

  • แผนภูมิ, SmartArt, และอ็อบเจกต์ OLE
  • การเคลื่อนไหวและการเปลี่ยนสไลด์
  • ส่งออกเป็น PDF, HTML, SVG, หรือรูปแบบภาพ
  • ไฮเปอร์ลิงก์, การตั้งค่าการกระทำ, แมโคร VBA, และลายเซ็นดิจิทัล

ส่วน XML ที่ไม่รู้จักที่พบระหว่างการโหลดจะถูกเก็บไว้ตามต้นฉบับเมื่อตอนบันทึก, ดังนั้นไฟล์ PPTX ที่สร้างโดยเครื่องมืออื่นจะทำการรอบทริปได้อย่างปลอดภัย.

ดูเพิ่มเติม