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

ภาพรวม

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

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

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

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

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

โค้ด 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();
    }
}

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

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

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

เพื่อแปลงงานนำเสนอที่ใช้ฟอนต์ดังกล่าวอย่างสำเร็จ ให้แน่ใจว่า Cambria Math มีให้กับ Aspose.Slides ขณะรันไทม์ คุณสามารถติดตั้งฟอนต์ในระบบปฏิบัติการหรือให้เป็น ฟอนต์ภายนอก เพื่อให้เข้าร่วมในกระบวนการเลือกฟอนต์ตามปกติระหว่างการเรนเดอร์และการแปลง

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

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

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

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

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

กฎเหล่านี้เข้าร่วมในลำดับ การเลือกฟอนต์ มาตรฐานที่ประเมินในระหว่างการโหลด, การเรนเดอร์ และการแปลง; หากฟอนต์ที่เลือกไม่พร้อมใช้งาน จะมีการแทนที่หรือแทนฟอนต์ตามกฎ

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

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

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

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

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

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

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

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

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

ทำให้ชุดฟอนต์สอดคล้องกันระหว่างเครื่องหรือคอนเทนเนอร์, เพิ่มฟอนต์ภายนอก ที่ต้องการสำหรับเอกสารผลลัพธ์, และ ฝังฟอนต์ ในงานนำเสนอเมื่อเป็นไปได้ เพื่อให้ฟอนต์ที่เลือกพร้อมใช้งานระหว่างการเรนเดอร์