กำหนดค่าการแทนฟอนต์ในงานนำเสนอใน .NET

ภาพรวม

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

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

รับการแทนที่ฟอนต์

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

โค้ด C# แสดงวิธีรับการแทนที่ฟอนต์ทั้งหมดที่ทำขณะเรนเดอร์งานนำเสนอ:

using (Presentation pres = new Presentation(@"Presentation.pptx"))
{
    foreach (var fontSubstitution in pres.FontsManager.GetSubstitutions())
    {
        Console.WriteLine("{0} -> {1}", fontSubstitution.OriginalFontName, fontSubstitution.SubstitutedFontName);
    }
}

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

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

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

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

// โหลดงานนำเสนอ
Presentation presentation = new Presentation("Fonts.pptx");

// โหลดฟอนต์ต้นฉบับที่จะถูกแทนที่
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);

// เพิ่มคอลเลกชันกฎฟอนต์ไปยังรายการกฎ
presentation.FontsManager.FontSubstRuleList = fontSubstRuleCollection;

using (IImage image = presentation.Slides[0].GetImage(1f, 1f))
{
    // บันทึกรูปภาพลงดิสก์ในรูปแบบ JPEG
    image.Save("Thumbnail_out.jpg", ImageFormat.Jpeg);
}

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

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

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

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

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

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

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

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

กฎการแทนที่ฟอนต์ทำงานเมื่อใด?

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

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

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

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

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

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

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

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

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

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

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