กำหนดค่าการแทนที่แบบอักษรในงานนำเสนอโดยใช้ С++

ภาพรวม

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

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

ตั้งค่ากฎการแทนที่แบบอักษร

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

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

โค้ด C++ นี้แสดงกระบวนการแทนที่แบบอักษร:

// เส้นทางไปยังไดเรกทอรีเอกสาร.
const String outPath = u"../out/RuleBasedFontsReplacement_out.pptx";
const String templatePath = u"../templates/DefaultFonts.pptx";


// Loads a presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

// กำหนดแบบอักษรที่จะแทนที่และแบบอักษรใหม่
SharedPtr<IFontData> sourceFont = MakeObject<FontData>(u"SomeRareFont");
SharedPtr<IFontData> destFont = MakeObject<FontData>(u"Arial");
	
// เพิ่มกฎแบบอักษรสำหรับการแทนที่แบบอักษร
SharedPtr<FontSubstRule> fontSubstRule = MakeObject<FontSubstRule>(sourceFont, destFont, FontSubstCondition::WhenInaccessible);

// เพิ่มกฎลงในคอลเลกชันกฎการแทนที่แบบอักษร
SharedPtr<FontSubstRuleCollection> fontSubstRuleCollection = MakeObject<FontSubstRuleCollection>();
fontSubstRuleCollection->Add(fontSubstRule);

// เพิ่มคอลเลกชันกฎแบบอักษรไปยังรายการกฎ
pres->get_FontsManager()->set_FontSubstRuleList ( fontSubstRuleCollection);


// Saves PPTX to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

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

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

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

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

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

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

อะไรคือความแตกต่างระหว่างการแทนที่แบบอักษรและการแทนที่แบบอักษร (substitution)?

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

เมื่อใดกฎการแทนที่จะถูกนำไปใช้อย่างแม่นยำ?

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

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

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

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

ได้ คุณสามารถ add external fonts ในเวลารันไทม์เพื่อให้ไลบรารีพิจารณาแบบอักษรเหล่านั้นสำหรับการเลือกและการเรนเดอร์ รวมถึงการแปลงต่อไป

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

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

มีความแตกต่างในพฤติกรรมการแทนที่ระหว่าง Windows, Linux และ macOS หรือไม่?

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

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

ประสานชุดแบบอักษรระหว่างเครื่องหรือคอนเทนเนอร์, add the external fonts ที่จำเป็นสำหรับเอกสารผลลัพธ์, และ embed fonts ในงานนำเสนอเมื่อเป็นไปได้เพื่อให้แบบอักษรที่เลือกพร้อมใช้ระหว่างการเรนเดอร์