เรนเดอร์งานนำเสนอด้วยฟอนต์สำรองใน JavaScript

ภาพรวม

Aspose.Slides ให้คุณเรนเดอร์งานนำเสนอโดยใช้กฎการใช้ฟอนท์สำรอง บทความนี้แสดงวิธีสร้างคอลเลกชันของกฎฟอนท์สำรอง, แก้ไขกฎโดยการลบหรือเพิ่มฟอนท์สำรอง, และกำหนดคอลเลกชันโดยใช้เมธอด FontsManager.setFontFallBackRulesCollection

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

เรนเดอร์สไลด์โดยใช้กฎฟอนท์สำรอง

  1. เรา สร้างคอลเลกชันกฎฟอนท์สำรอง
  2. Remove กฎฟอนท์สำรองและ addFallBackFonts ให้กับกฎอื่น。
  3. กำหนดคอลเลกชันกฎให้กับ getFontsManager.getFontFallBackRulesCollection เมธอด。
  4. ด้วยเมธอด Presentation.save เราสามารถบันทึกงานนำเสนอในรูปแบบเดิมหรือบันทึกเป็นรูปแบบอื่น หลังจากที่คอลเลกชันกฎฟอนท์สำรองถูกกำหนดให้กับ FontsManager กฎเหล่านี้จะถูกนำไปใช้ในทุกการดำเนินการกับงานนำเสนอ: บันทึก, เรนเดอร์, แปลง, เป็นต้น。
// สร้างอินสแตนซ์ใหม่ของคอลเลกชันกฎ
var rulesList = new aspose.slides.FontFallBackRulesCollection();
// สร้างกฎหลายรายการ
rulesList.add(new aspose.slides.FontFallBackRule(0x400, 0x4ff, "Times New Roman"));
for (let i = 0; i < rulesList.size(); i++) {
    let fallBackRule = rulesList.get_Item(0);
    // พยายามลบฟอนต์ FallBack "Tahoma" จากกฎที่โหลด
    fallBackRule.remove("Tahoma");
    // และอัปเดตกฎสำหรับช่วงที่ระบุ
    if ((fallBackRule.getRangeEndIndex() >= 0x4000) && (fallBackRule.getRangeStartIndex() < 0x5000)) {
        fallBackRule.addFallBackFonts("Verdana");
    }
}
// นอกจากนี้เราสามารถลบกฎใด ๆ ที่มีอยู่ในรายการได้
if (rulesList.size() > 0) {
    rulesList.remove(rulesList.get_Item(0));
}
var pres = new aspose.slides.Presentation("input.pptx");
try {
    // กำหนดรายการกฎที่เตรียมไว้สำหรับการใช้งาน
    pres.getFontsManager().setFontFallBackRulesCollection(rulesList);
    // เรนเดอร์ภาพย่อยโดยใช้คอลเลกชันกฎที่กำหนดค่าแล้วและบันทึกเป็น JPEG
    var slideImage = pres.getSlides().get_Item(0).getImage(1.0, 1.0);
    // บันทึกรูปภาพลงดิสก์ในรูปแบบ JPEG
    try {
        slideImage.save("Slide_0.jpg", aspose.slides.ImageFormat.Jpeg);
    } finally {
        if (slideImage != null) {
            slideImage.dispose();
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}