# กำหนดค่าการแทนฟอนต์ในการนำเสนอโดยใช้ PHP

> เปิดใช้งานการแทนฟอนต์ที่เหมาะสมที่สุดใน Aspose.Slides สำหรับ PHP ผ่าน Java เมื่อแปลงงานนำเสนอ PowerPoint และ OpenDocument เป็นรูปแบบไฟล์อื่น

Source: https://docs.aspose.com/slides/th/php-java/font-substitution/
Updated: 2026-06-13

## **บทนำ**

การแทนที่ฟอนต์ทำให้ Aspose.Slides สามารถใช้ฟอนต์อื่นเมื่อฟอนต์ของงานนำเสนอเดิมไม่สามารถใช้ได้ระหว่างการเรนเดอร์หรือการแปลง คุณสามารถตรวจสอบว่าฟอนต์ใดถูกแทนที่โดยใช้เมธอด `getSubstitutions` ของคลาส `FontsManager`

Aspose.Slides ยังอนุญาตให้คุณกำหนดกฎการแทนฟอนต์ ตัวอย่างเช่น คุณสามารถระบุว่าฟอนต์ที่ไม่สามารถเข้าถึงได้ควรถูกแทนที่ด้วยฟอนต์ที่มีอยู่แล้วและจากนั้นนำกฎเหล่านั้นไปใช้ผ่านฟอนต์เมเนเจอร์ของงานนำเสนอ

## **ตั้งค่ากฎการแทนฟอนต์**

Aspose.Slides อนุญาตให้คุณตั้งค่ากฎสำหรับฟอนต์ที่กำหนดว่าจะทำอย่างไรในเงื่อนไขบางอย่าง (เช่นเมื่อฟอนต์ไม่สามารถเข้าถึงได้) ดังนี้:

1. โหลดงานนำเสนอที่เกี่ยวข้อง
2. โหลดฟอนต์ที่ต้องการจะแทนที่
3. โหลดฟอนต์ใหม่
4. เพิ่มกฎสำหรับการแทนที่
5. เพิ่มกฎลงในคอลเลกชันกฎการแทนฟอนต์ของงานนำเสนอ
6. สร้างภาพสไลด์เพื่อสังเกตผลลัพธ์

โค้ด PHP นี้แสดงกระบวนการแทนฟอนต์:

```php
  # โหลดการนำเสนอ
  $pres = new Presentation("Fonts.pptx");
  try {
    # โหลดฟอนต์ต้นทางที่จะแทนที่
    $sourceFont = new FontData("SomeRareFont");
    # โหลดฟอนต์ใหม่
    $destFont = new FontData("Arial");
    # เพิ่มกฎฟอนต์สำหรับการแทนที่ฟอนต์
    $fontSubstRule = new FontSubstRule($sourceFont, $destFont, FontSubstCondition->WhenInaccessible);
    # เพิ่มกฎลงในคอลเลกชันกฎการแทนฟอนต์
    $fontSubstRuleCollection = new FontSubstRuleCollection();
    $fontSubstRuleCollection->add($fontSubstRule);
    # เพิ่มคอลเลกชันกฎฟอนต์ลงในรายการกฎ
    $pres->getFontsManager()->setFontSubstRuleList($fontSubstRuleCollection);
    # ฟอนต์ Arial จะถูกใช้แทน SomeRareFont เมื่อฟอนต์หลังจากนั้นไม่สามารถเข้าถึงได้
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(1.0, 1.0);
    # บันทึกรูปภาพลงดิสก์ในรูปแบบ JPEG
    try {
      $slideImage->save("Thumbnail_out.jpg", ImageFormat::Jpeg);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }
```

{{%  alert title="NOTE"  color="warning"   %}} 
คุณอาจต้องการดู [**การแทนที่ฟอนต์**](/slides/th/php-java/font-replacement/).
{{% /alert %}}

## **ข้อจำกัดสำหรับฟอนต์สมการคณิตศาสตร์**

กฎการแทนฟอนต์เข้าร่วมกระบวนการเลือกฟอนต์มาตรฐานที่ใช้ระหว่างการเรนเดอร์และการแปลง พวกมันเหมาะสำหรับสถานการณ์ข้อความทั่วไปที่ Aspose.Slides สามารถแทนฟอนต์ที่ไม่สามารถเข้าถึงได้ด้วยฟอนต์อื่นที่มีอยู่ตามกฎที่กำหนด

อย่างไรก็ตามสมการคณิตศาสตร์ของ Office มีข้อจำกัดสำคัญ หากสมการถูกสร้างด้วย **Cambria Math** Aspose.Slides อาจยังต้องการฟอนต์ **Cambria Math** ดั้งเดิมเพื่อคำนวณและเรนเดอร์การจัดวางสมการอย่างถูกต้อง เพราะฉะนั้นการแทนที่ **Cambria Math** ด้วยฟอนต์คณิตศาสตร์อื่น เช่น **STIX Two Math** ไม่ได้รับการสนับสนุนสำหรับการเรนเดอร์สมการและอาจยังทำให้เกิดข้อผิดพลาดที่บ่งชี้ว่าต้องการ **Cambria Math** อยู่

เพื่อแปลงงานนำเสนอเช่นนี้สำเร็จ ให้ตรวจสอบว่า **Cambria Math** มีอยู่ในระบบสำหรับ Aspose.Slides ขณะรันไทม์ คุณสามารถติดตั้งฟอนต์ในระบบปฏิบัติการหรือให้เป็น [ฟอนต์ภายนอก](/slides/th/php-java/custom-font/) เพื่อให้มันเข้าร่วมกระบวนการเลือกฟอนต์ปกติระหว่างการเรนเดอร์และการแปลง

ข้อจำกัดนี้เฉพาะการเรนเดอร์สมการเท่านั้น กฎการแทนฟอนต์มาตรฐานที่อธิบายไว้ข้างต้นยังคงใช้กับข้อความทั่วไปของงานนำเสนอเมื่อฟอนต์ดั้งเดิมไม่สามารถเข้าถึงได้

## **คำถามที่พบบ่อย**

**ความแตกต่างระหว่างการแทนที่ฟอนต์และการแทนฟอนต์คืออะไร?**

[การแทนที่](/slides/th/php-java/font-replacement/) คือการบังคับให้ฟอนต์หนึ่งแทนที่ด้วยฟอนต์อื่นทั่วทั้งงานนำเสนอ การแทนฟอนต์คือกฎที่ทำงานเมื่อเงื่อนไขเฉพาะเกิดขึ้น เช่นฟอนต์ดั้งเดิมไม่พร้อมใช้งาน แล้วฟอนต์สำรองที่กำหนดจะถูกใช้

**กฎการแทนฟอนต์จะถูกนำไปใช้เมื่อใด?**

กฎเหล่านี้เข้าร่วมลำดับ [การเลือกฟอนต์](/slides/th/php-java/font-selection-sequence/) มาตรฐานที่ประเมินระหว่างการโหลด, การเรนเดอร์ และการแปลง; หากฟอนต์ที่เลือกไม่พร้อมใช้งาน การแทนที่หรือการแทนฟอนต์จะถูกนำมาใช้

**พฤติกรรมเริ่มต้นคืออะไรหากไม่มีการตั้งค่าการแทนที่หรือการแทนฟอนต์และฟอนต์หายไปจากระบบ?**

ไลบรารีจะพยายามเลือกฟอนต์ระบบที่ใกล้เคียงที่สุด คล้ายกับที่ PowerPoint ทำ

**ฉันสามารถแนบฟอนต์ภายนอกแบบกำหนดเองในขณะรันไทม์เพื่อหลีกเลี่ยงการแทนฟอนต์ได้หรือไม่?**

ได้ คุณสามารถ [เพิ่มฟอนต์ภายนอก](/slides/th/php-java/custom-font/) ในขณะรันไทม์เพื่อให้ไลบรารีพิจารณาใช้ในการเลือกและเรนเดอร์ รวมถึงการแปลงต่อจากนั้น

**Aspose แจกจ่ายฟอนต์ใดกับไลบรารีหรือไม่?**

ไม่มี Aspose ไม่แจกจ่ายฟอนต์ที่เป็นแบบชำระเงินหรือฟรี; คุณต้องเพิ่มและใช้ฟอนต์ด้วยความรับผิดชอบของตนเอง

**มีความแตกต่างในการทำงานของการแทนฟอนต์บน Windows, Linux และ macOS หรือไม่?**

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

**ฉันควรเตรียมสภาพแวดล้อมอย่างไรเพื่อให้การแทนฟอนต์ที่ไม่คาดคิดลดลงในการแปลงแบบแบทช์?**

ซิงโครไนซ์ชุดฟอนต์ข้ามเครื่องหรือคอนเทนเนอร์, [เพิ่มฟอนต์ภายนอก](/slides/th/php-java/custom-font/) ที่จำเป็นสำหรับเอกสารผลลัพธ์, และ [ฝังฟอนต์](/slides/th/php-java/embedded-font/) ในงานนำเสนอเมื่อเป็นไปได้เพื่อให้ฟอนต์ที่เลือกพร้อมใช้งานระหว่างการเรนเดอร์
