กำหนดค่าการแทนที่ฟอนต์ในงานนำเสนอโดยใช้ Java
ภาพรวม
การแทนที่ฟอนต์ช่วยให้ Aspose.Slides สามารถใช้ฟอนต์อื่นได้เมื่อฟอนต์ของงานนำเสนอเดิมไม่พร้อมใช้งานระหว่างการเรนเดอร์หรือการแปลง คุณสามารถตรวจสอบฟอนต์ที่ถูกแทนที่ได้โดยใช้เมธอด getSubstitutions จากอินเทอร์เฟซ IFontsManager
Aspose.Slides ยังอนุญาตให้คุณกำหนดกฎการแทนที่ฟอนต์ได้ ตัวอย่างเช่น คุณสามารถระบุว่าฟอนต์ที่ไม่สามารถเข้าถึงได้ควรเปลี่ยนเป็นฟอนต์อื่นที่มีอยู่และจากนั้นใช้กฎเหล่านั้นผ่านตัวจัดการฟอนต์ของงานนำเสนอ
ตั้งค่ากฎการแทนที่ฟอนต์
Aspose.Slides อนุญาตให้คุณตั้งค่ากฎสำหรับฟอนต์ที่กำหนดว่าจะทำอย่างไรในสถานการณ์บางอย่าง (เช่น เมื่อฟอนต์ไม่สามารถเข้าถึงได้) ดังนี้:
- โหลดงานนำเสนอที่เกี่ยวข้อง
- โหลดฟอนต์ที่ต้องการจะแทนที่
- โหลดฟอนต์ใหม่
- เพิ่มกฎสำหรับการแทนที่
- เพิ่มกฎลงในคอลเลกชันกฎการแทนที่ฟอนต์ของงานนำเสนอ
- สร้างรูปภาพสไลด์เพื่อดูผลลัพธ์
โค้ด Java นี้แสดงกระบวนการแทนที่ฟอนต์:
// โหลดงานนำเสนอ
Presentation pres = new Presentation("Fonts.pptx");
try {
// โหลดฟอนต์ต้นฉบับที่ต้องการแทนที่
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);
// เพิ่มคอลเลกชันกฎฟอนต์ไปยังรายการกฎ
pres.getFontsManager().setFontSubstRuleList(fontSubstRuleCollection);
// ฟอนต์ Arial จะถูกใช้แทน SomeRareFont เมื่อฟอนต์หลังไม่สามารถเข้าถึงได้
IImage slideImage = pres.getSlides().get_Item(0).getImage(1f, 1f);
// บันทึกรูปภาพลงดิสก์ในรูปแบบ JPEG
try {
slideImage.save("Thumbnail_out.jpg", ImageFormat.Jpeg);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
NOTE
คุณอาจต้องการดู การแทนที่ฟอนต์.ข้อจำกัดสำหรับฟอนต์สมการคณิตศาสตร์
กฎการแทนที่ฟอนต์ทำงานร่วมกับกระบวนการเลือกฟอนต์มาตรฐานที่ใช้ระหว่างการเรนเดอร์และการแปลง พวกมันเหมาะสำหรับสถานการณ์ข้อความทั่วไปที่ Aspose.Slides สามารถแทนที่ฟอนต์ที่ไม่สามารถเข้าถึงได้ด้วยฟอนต์อื่นที่พร้อมใช้งานตามกฎที่กำหนด
อย่างไรก็ตาม สมการคณิตศาสตร์ของ Office มีข้อจำกัดสำคัญ หากสมการถูกสร้างด้วย Cambria Math Aspose.Slides อาจยังต้องการฟอนต์ Cambria Math ดั้งเดิมเพื่อคำนวณและเรนเดอร์เลเอาต์ของสมการอย่างถูกต้อง เนื่องจากนั้น การแทนที่ Cambria Math ด้วยฟอนต์คณิตศาสตร์อื่น เช่น STIX Two Math ไม่ได้รับการสนับสนุนสำหรับการเรนเดอร์สมการและอาจยังทำให้เกิดข้อยกเว้นที่ระบุว่า Cambria Math จำเป็นต้องใช้
เพื่อแปลงงานนำเสนอเหล่านี้สำเร็จ โปรดตรวจสอบให้แน่ใจว่า Cambria Math มีให้กับ Aspose.Slides ในขณะรันไทม์ คุณสามารถติดตั้งฟอนต์นี้ในระบบปฏิบัติการหรือให้เป็น ฟอนต์ภายนอก เพื่อให้มันเข้าร่วมในกระบวนการเลือกฟอนต์ปกติระหว่างการเรนเดอร์และการแปลง
ข้อจำกัดนี้เฉพาะการเรนเดอร์สมการเท่านั้น กฎการแทนที่ฟอนต์มาตรฐานที่อธิบายไว้ข้างต้นยังคงใช้กับข้อความทั่วไปของงานนำเสนอเมื่อฟอนต์เดิมไม่สามารถเข้าถึงได้
คำถามที่พบบ่อย
อะไรคือความแตกต่างระหว่างการแทนที่ฟอนต์และการแทนฟอนต์?
Replacement คือการบังคับแทนที่ฟอนต์หนึ่งด้วยฟอนต์อื่นทั่วทั้งงานนำเสนอ ส่วนการแทนฟอนต์เป็นกฎที่ทำงานเมื่อเงื่อนไขเฉพาะเกิดขึ้น เช่น เมื่อฟอนต์เดิมไม่พร้อมใช้งาน แล้วฟอนต์สำรองที่กำหนดจะถูกใช้
กฎการแทนฟอนต์ถูกนำไปใช้เมื่อใด?
กฎเหล่านี้ทำงานร่วมกับกระบวนการ การเลือกฟอนต์ มาตรฐานที่ประเมินระหว่างการโหลด, การเรนเดอร์ และการแปลง; หากฟอนต์ที่เลือกไม่พร้อมใช้งาน จะมีการแทนที่หรือแทนฟอนต์
พฤติกรรมเริ่มต้นคืออะไรหากไม่มีการกำหนดการแทนที่หรือการแทนฟอนต์และฟอนต์นั้นหายไปจากระบบ?
ไลบรารีจะพยายามเลือกฟอนต์ระบบที่ใกล้เคียงที่สุดที่มีอยู่ คล้ายกับพฤติกรรมของ PowerPoint
ฉันสามารถแนบฟอนต์ภายนอกที่กำหนดเองในขณะรันไทม์เพื่อหลีกเลี่ยงการแทนฟอนต์ได้หรือไม่?
ได้ คุณสามารถ เพิ่มฟอนต์ภายนอก ในขณะรันไทม์เพื่อให้ไลบรารีพิจารณาใช้ในการเลือกและการเรนเดอร์ รวมถึงการแปลงต่อไป
Aspose แจกจ่ายฟอนต์ใดกับไลบรารีหรือไม่?
ไม่มี Aspose ไม่ได้แจกจ่ายฟอนต์ที่เป็นแบบเสียค่าใช้จ่ายหรือฟรี; คุณต้องเพิ่มและใช้ฟอนต์ด้วยดุลยพินิจและความรับผิดชอบของคุณเอง
มีความแตกต่างในการทำงานของการแทนฟอนต์บน Windows, Linux, และ macOS หรือไม่?
มี การค้นหาฟอนต์เริ่มจากไดเรกทอรีฟอนต์ของระบบปฏิบัติการ ชุดฟอนต์ที่พร้อมใช้งานโดยค่าเริ่มต้นและเส้นทางการค้นหาจะแตกต่างกันในแต่ละแพลตฟอร์ม ซึ่งส่งผลต่อความพร้อมใช้งานและความจำเป็นในการแทนฟอนต์
ฉันควรเตรียมสภาพแวดล้อมอย่างไรเพื่อลดการแทนฟอนต์ที่ไม่คาดคิดระหว่างการแปลงแบบแบตช์?
ซิงค์ชุดฟอนต์ระหว่างเครื่องหรือคอนเทนเนอร์, เพิ่มฟอนต์ภายนอก ที่จำเป็นสำหรับเอกสารผลลัพธ์, และ ฝังฟอนต์ ในงานนำเสนอเมื่อเป็นไปได้เพื่อให้ฟอนต์ที่เลือกพร้อมใช้งานระหว่างการเรนเดอร์