# กำหนดค่าการแทนที่ฟอนต์ในงานนำเสนอบน Android

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

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

## **ภาพรวม**

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

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

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

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

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

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

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

{{%  alert title="NOTE"  color="warning"   %}} 
คุณอาจต้องการดู [**การแทนที่ฟอนต์**](/slides/th/androidjava/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/androidjava/custom-font/) เพื่อให้มันเข้าร่วมในกระบวนการเลือกฟอนต์ตามปกติระหว่างการแสดงผลและการแปลง  

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

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

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

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

**พฤติกรรมเริ่มต้นคืออะไรหากไม่มีการตั้งค่าการแทนที่หรือการแทนฟอนต์และฟอนต์หายไปจากระบบ?**  
ไลบรารีจะพยายามเลือกฟอนต์ระบบที่ใกล้เคียงที่สุดที่มีอยู่ ซึ่งคล้ายกับพฤติกรรมของ PowerPoint  

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

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

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

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