สร้างงานนำเสนอใน PHP
ภาพรวม
บทความนี้แสดงวิธีสร้างงานพรีเซนเทชันใน Aspose.Slides, เพิ่มกล่องข้อความในสไลด์แรกของมัน, และบันทึกผลลัพธ์เป็นไฟล์ นอกจากนี้ยังแสดงวิธีสร้างและบันทึกงานพรีเซนเทชันเปล่า, และวิธีเปิดงานพรีเซนเทชันที่มีอยู่ในรูปแบบที่รองรับและบันทึกเป็นรูปแบบอื่น ส่วนคำถามที่พบบ่อยสั้นๆ ที่ส่วนท้ายครอบคลุมคำถามทั่วไปเกี่ยวกับรูปแบบ, เทมเพลต, ขนาดสไลด์, หน่วยวัด, การใช้หน่วยความจำ, การทำงานหลายเธรด, ลิขสิทธิ์, ลายเซ็นดิจิทัล, และการสนับสนุน VBA.
ก่อนเริ่ม, ให้ติดตั้ง Aspose.Slides for PHP ผ่าน Java ด้วย Composer และเริ่ม PHP/Java Bridge ใน Apache Tomcat ดูที่ การติดตั้ง สำหรับการตั้งค่าที่สมบูรณ์ ตัวอย่างด้านล่างคาดว่า Tomcat จะทำงานที่ localhost:8080 และโฟลเดอร์ vendor ของ Composer อยู่ข้างสคริปต์
สร้างงานนำเสนอ PowerPoint
เพื่อสร้างงานพรีเซนเทชันและใส่กล่องข้อความในสไลด์แรก, ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation งานพรีเซนเทชันใหม่จะมีสไลด์เปล่า 1 แท่งอยู่แล้ว
- ดึงสไลด์นั้นจากคอลเลกชันที่คืนโดย Presentation::getSlides, โดยใช้ดัชนี 0
- เพิ่มสี่เหลี่ยมโดยใช้เมธอด ShapeCollection::addAutoShape และกำหนดข้อความของมันด้วย TextFrame::setText
- บันทึกงานพรีเซนเทชันเป็นไฟล์ PPTX ด้วยเมธอด Presentation::save
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/th/lib/aspose.slides.php");
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 400, 100);
$shape->getTextFrame()->setText("Hello, Aspose.Slides!");
$presentation->save(__DIR__ . "/hello.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
สองบรรทัด require_once โหลดไคลเอนต์ PHP/Java Bridge จาก Tomcat และคลาสต่างๆ ของ Aspose.Slides จากแพคเกจ Composer จุดมุมซ้ายบนของสี่เหลี่ยมอยู่ห่างจากขอบซ้าย 50 พอยท์และจากขอบบน 50 พอยท์, ความกว้างของสี่เหลี่ยมคือ 400 พอยท์และความสูง 100 พอยท์ ไฟล์ที่บันทึกจะมีสไลด์หนึ่งที่มีสี่เหลี่ยมและข้อความของมัน หากไม่มีใบอนุญาต, Aspose.Slides จะเพิ่มลายน้ำการประเมินผลบนทุกสไลด์ที่บันทึก; ดูที่ ใบอนุญาต.
Note
Aspose.Slides อ่านและเขียนไฟล์ภายใน Tomcat ไม่ได้ในกระบวนการ PHP ของคุณ ดังนั้นเส้นทางเชิงสัมพันธ์เช่น"hello.pptx" จะถูกแก้ไขโดยอ้างอิงโฟลเดอร์ทำงานของ Tomcat ตัวอย่างในหน้านี้สร้างเส้นทางเต็มด้วย __DIR__ ดังนั้นไฟล์จะถูกอ่านและบันทึกอยู่ข้างสคริปต์
สร้างและบันทึกงานพรีเซนเทชัน
เพื่อสร้างงานพรีเซนเทชันเปล่าและบันทึก, สร้างอินสแตนซ์ของคลาส Presentation แล้วบันทึกในรูปแบบใดก็ได้ของ enumeration SaveFormat ผลลัพธ์จะเป็นงานพรีเซนเทชันที่มีสไลด์เปล่า 1 แท่ง
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/th/lib/aspose.slides.php");
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$presentation->save(__DIR__ . "/OutputPresentation.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
เปิดและบันทึกงานพรีเซนเทชัน
เพื่อแปลงงานพรีเซนเทชันจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่ง, เปิดมันโดยส่งพาธของไฟล์ไปยังคอนสตรักเตอร์ของ Presentation จากนั้นบันทึกในรูปแบบเป้าหมาย Aspose.Slides จะตรวจจับรูปแบบอินพุต เช่น PPT, PPTX หรือ ODP จากไฟล์โดยตรง
ตัวอย่างด้านล่างคาดว่าไฟล์งานพรีเซนเทชัน OpenDocument ชื่อ Sample.odp อยู่ข้างสคริปต์และบันทึกเป็น PPTX.
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/th/lib/aspose.slides.php");
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation(__DIR__ . "/Sample.odp");
try {
$presentation->save(__DIR__ . "/OutputPresentation.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
คำถามที่พบบ่อย
ฉันสามารถบันทึกงานพรีเซนเทชันใหม่เป็นรูปแบบใดได้บ้าง?
คุณสามารถบันทึกเป็น PPTX, PPT, และ ODP, และส่งออกเป็น PDF, XPS, HTML, SVG, และ รูปภาพ, เป็นต้น.
ฉันสามารถเริ่มจากเทมเพลต (POTX/POTM) แล้วบันทึกเป็น PPTX ปกติได้หรือไม่?
ได้. โหลดเทมเพลตและบันทึกเป็นรูปแบบที่ต้องการ; รูปแบบ POTX/POTM/PPTM และรูปแบบที่คล้ายกัน ได้รับการสนับสนุน.
ฉันจะควบคุมขนาด/อัตราส่วนของสไลด์เมื่อสร้างงานพรีเซนเทชันอย่างไร?
ตั้งค่า ขนาดสไลด์ (รวมถึงพรีเซ็ตเช่น 4:3 และ 16:9 หรือขนาดกำหนดเอง) และเลือกวิธีที่เนื้อหาควรสเกล.
ขนาดและพิกัดวัดเป็นหน่วยอะไร?
เป็นพอยท์: 1 นิ้วเท่ากับ 72 หน่วย.
ฉันจะจัดการงานพรีเซนเทชันขนาดใหญ่มาก (ที่มีไฟล์สื่อหลายไฟล์) เพื่อลดการใช้หน่วยความจำอย่างไร?
ใช้ กลยุทธ์การจัดการ BLOB, จำกัดการเก็บข้อมูลในหน่วยความจำโดยใช้ไฟล์ชั่วคราว, และควรใช้กระบวนการทำงานแบบไฟล์เป็นหลักแทนสตรีมที่อยู่ในหน่วยความจำเต็ม.
ฉันสามารถสร้าง/บันทึกงานพรีเซนเทชันพร้อมกันได้หรือไม่?
คุณไม่สามารถทำงานกับอินสแตนซ์ของ Presentation เดียวจาก หลายเธรด ได้. ให้รันอินสแตนซ์แยกต่างหากสำหรับแต่ละเธรดหรือกระบวนการ.
ฉันจะลบลายน้ำและข้อจำกัดของเวอร์ชันทดลองอย่างไร?
ใช้ใบอนุญาต เพียงครั้งเดียวต่อกระบวนการ. ไฟล์ XML ของใบอนุญาตต้องไม่ถูกแก้ไข, และการตั้งค่าใบอนุญาตควรทำให้สอดคล้องกันหากมีหลายเธรด.
ฉันสามารถใส่ลายเซ็นดิจิทัลใน PPTX ที่สร้างได้ไหม?
ได้. ลายเซ็นดิจิทัล (การเพิ่มและตรวจสอบ) ได้รับการสนับสนุนสำหรับงานพรีเซนเทชัน.
งานพรีเซนเทชันที่สร้างขึ้นรองรับมาโคร (VBA) หรือไม่?
ได้. คุณสามารถ สร้าง/แก้ไขโปรเจกต์ VBA และบันทึกไฟล์ที่เปิดใช้งานมาโครเช่น PPTM/PPSM.