จัดการฟอนต์ในงานนำเสนอด้วย PHP

จัดการคุณสมบัติที่เกี่ยวกับฟอนต์

เพื่อจัดการคุณสมบัติของฟอนต์ในย่อหน้าโดยใช้ Aspose.Slides สำหรับ PHP ผ่าน Java:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. รับอ้างอิงของสไลด์โดยใช้ดัชนีของมัน
  3. เข้าถึงรูปร่าง Placeholder ในสไลด์และแปลงประเภทเป็น AutoShape
  4. รับ Paragraph จาก TextFrame ที่เปิดเผยโดย AutoShape
  5. จัดแนวย่อหน้าให้เป็นแบบเต็ม
  6. เข้าถึง Portion ของข้อความใน Paragraph
  7. กำหนดฟอนต์โดยใช้ FontData และตั้งค่า Font ของ Portion ของข้อความตามนั้น
    1. ตั้งฟอนต์เป็นแบบหนา
    2. ตั้งฟอนต์เป็นแบบเอียง
  8. ตั้งสีฟอนต์โดยใช้ FillFormat ที่เปิดเผยโดยออบเจ็กต์ Portion
  9. บันทึกงานนำเสนอที่แก้ไขแล้วเป็นไฟล์ PPTX

การดำเนินการตามขั้นตอนข้างต้นแสดงด้านล่าง ซึ่งจะรับงานนำเสนอที่ไม่มีการตกแต่งและจัดรูปแบบฟอนต์บนสไลด์หนึ่ง ภาพหน้าจอต่อไปนี้แสดงไฟล์ต้นฉบับและวิธีที่โค้ดสแน็ปเปลี่ยนแปลงไฟล์นั้น โค้ดจะเปลี่ยนฟอนต์ สี และรูปแบบฟอนต์

todo:image_alt_text
รูปภาพ: ข้อความในไฟล์ต้นฉบับ
todo:image_alt_text
รูปภาพ: ข้อความเดียวกันที่มีการจัดรูปแบบอัปเดต
  # สร้างอ็อบเจ็กต์ Presentation ที่เป็นไฟล์ PPTX
  $pres = new Presentation("FontProperties.pptx");
  try {
    # เข้าถึงสไลด์โดยใช้ตำแหน่งของสไลด์
    $slide = $pres->getSlides()->get_Item(0);
    # เข้าถึง placeholder ที่หนึ่งและที่สองในสไลด์และแปลงประเภทเป็น AutoShape
    $tf1 = $slide->getShapes()->get_Item(0)->getTextFrame();
    $tf2 = $slide->getShapes()->get_Item(1)->getTextFrame();
    # เข้าถึงย่อหน้าที่หนึ่ง
    $para1 = $tf1->getParagraphs()->get_Item(0);
    $para2 = $tf2->getParagraphs()->get_Item(0);
    # จัดเรียงย่อหน้าให้เต็มบรรทัด
    $para2->getParagraphFormat()->setAlignment(TextAlignment->JustifyLow);
    # เข้าถึง portion ที่หนึ่ง
    $port1 = $para1->getPortions()->get_Item(0);
    $port2 = $para2->getPortions()->get_Item(0);
    # กำหนดฟอนต์ใหม่
    $fd1 = new FontData("Elephant");
    $fd2 = new FontData("Castellar");
    # กำหนดฟอนต์ใหม่ให้กับ portion
    $port1->getPortionFormat()->setLatinFont($fd1);
    $port2->getPortionFormat()->setLatinFont($fd2);
    # ตั้งฟอนต์ให้เป็นตัวหนา
    $port1->getPortionFormat()->setFontBold(NullableBool::True);
    $port2->getPortionFormat()->setFontBold(NullableBool::True);
    # ตั้งฟอนต์ให้เป็นตัวเอียง
    $port1->getPortionFormat()->setFontItalic(NullableBool::True);
    $port2->getPortionFormat()->setFontItalic(NullableBool::True);
    # ตั้งสีฟอนต์
    $port1->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port1->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    $port2->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port2->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
    # บันทึกไฟล์ PPTX ลงดิสก์
    $pres->save("WelcomeFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

ตั้งค่าคุณสมบัติฟอนต์ของข้อความ

เพื่อสร้างกล่องข้อความและตั้งค่าคุณสมบัติฟอนต์ของข้อความในนั้น:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. รับอ้างอิงของสไลด์โดยใช้ดัชนีของมัน
  3. เพิ่ม AutoShape ชนิด Rectangle ลงบนสไลด์
  4. ลบสไตล์การเติมที่เชื่อมโยงกับ AutoShape
  5. เข้าถึง TextFrame ของ AutoShape
  6. เพิ่มข้อความบางส่วนลงใน TextFrame
  7. เข้าถึงออบเจ็กต์ Portion ที่เชื่อมโยงกับ TextFrame
  8. กำหนดฟอนต์ที่จะใช้สำหรับ Portion
  9. ตั้งคุณสมบัติฟอนต์อื่น ๆ เช่น ตัวหนา, ตัวเอียง, ขีดเส้นใต้, สี และความสูงโดยใช้คุณสมบัติที่เกี่ยวข้องที่เปิดเผยโดยออบเจ็กต์ Portion
  10. บันทึกงานนำเสนอที่แก้ไขแล้วเป็นไฟล์ PPTX

การดำเนินการตามขั้นตอนข้างต้นแสดงด้านล่าง

todo:image_alt_text
รูปภาพ: ข้อความพร้อมคุณสมบัติดีไซน์ฟอนต์บางส่วนที่ตั้งโดย Aspose.Slides สำหรับ PHP ผ่าน Java
  # สร้างอ็อบเจ็กต์ Presentation ที่เป็นไฟล์ PPTX
  $pres = new Presentation();
  try {
    # ดึงสไลด์แรก
    $sld = $pres->getSlides()->get_Item(0);
    # เพิ่ม AutoShape ชนิด Rectangle
    $ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 50);
    # ลบสไตล์การเติมใด ๆ ที่เชื่อมโยงกับ AutoShape
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # เข้าถึง TextFrame ที่เชื่อมโยงกับ AutoShape
    $tf = $ashp->getTextFrame();
    $tf->setText("Aspose TextBox");
    # เข้าถึง Portion ที่เชื่อมโยงกับ TextFrame
    $port = $tf->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    # ตั้งค่า Font สำหรับ Portion
    $port->getPortionFormat()->setLatinFont(new FontData("Times New Roman"));
    # ตั้งค่าคุณสมบัติ Bold ของ Font
    $port->getPortionFormat()->setFontBold(NullableBool::True);
    # ตั้งค่าคุณสมบัติ Italic ของ Font
    $port->getPortionFormat()->setFontItalic(NullableBool::True);
    # ตั้งค่าคุณสมบัติ Underline ของ Font
    $port->getPortionFormat()->setFontUnderline(TextUnderlineType::Single);
    # ตั้งค่าความสูงของ Font
    $port->getPortionFormat()->setFontHeight(25);
    # ตั้งค่าสีของ Font
    $port->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    # บันทึกงานนำเสนอลงดิสก์
    $pres->save("pptxFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }