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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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