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

ภาพรวม

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

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

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

The following example includes these steps:

  1. เรา สร้างคอลเลกชันของกฎฟอนต์สำรอง.
  2. Remove() กฎฟอนต์สำรองและAddFallBackFonts() ให้กับกฎอื่น.
  3. กำหนดคอลเลกชันของกฎให้กับ property FontsManager.FontFallBackRulesCollection.
  4. ด้วยวิธีการ Presentation.Save() เราสามารถบันทึกงานนำเสนอในรูปแบบเดียวกัน หรือบันทึกในรูปแบบอื่น หลังจากที่คอลเลกชันของกฎฟอนต์สำรองถูกตั้งค่าให้กับ FontsManager กฎเหล่านี้จะถูกนำไปใช้ในทุกการดำเนินการกับงานนำเสนอ เช่น การบันทึก, การเรนเดอร์, การแปลง เป็นต้น.
// สร้างอินสแตนซ์ใหม่ของคอลเลกชันกฎ
IFontFallBackRulesCollection rulesList = new FontFallBackRulesCollection();

// create a number of rules
rulesList.Add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));
//rulesList.Add(new FontFallBackRule(...));

foreach (IFontFallBackRule fallBackRule in rulesList)
{
	// พยายามลบฟอนต์สำรอง "Tahoma" จากกฎที่โหลดมา
	fallBackRule.Remove("Tahoma");

	// และอัปเดตกฎสำหรับช่วงที่ระบุ
	if ((fallBackRule.RangeEndIndex >= 0x4000) && (fallBackRule.RangeStartIndex < 0x5000))
		fallBackRule.AddFallBackFonts("Verdana");
}

// นอกจากนี้เราสามารถลบกฎที่มีอยู่ใด ๆ จากรายการได้
if (rulesList.Count > 0)
	rulesList.Remove(rulesList[0]);

using (Presentation pres = new Presentation("input.pptx"))
{
    // กำหนดรายการกฎที่เตรียมไว้เพื่อใช้งาน
    pres.FontsManager.FontFallBackRulesCollection = rulesList;

    // เรนเดอร์ภาพย่อโดยใช้คอลเลกชันกฎที่เริ่มต้นและบันทึกเป็น PNG
    using (IImage image = pres.Slides[0].GetImage(1f, 1f))
    {
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}