กำหนดค่าการแทนที่ฟอนต์ในงานนำเสนอโดยใช้ Java

ภาพรวม

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

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

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

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

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

โค้ด 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();
}

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

กฎการแทนที่ฟอนต์ทำงานร่วมกับกระบวนการเลือกฟอนต์มาตรฐานที่ใช้ระหว่างการเรนเดอร์และการแปลง พวกมันเหมาะสำหรับสถานการณ์ข้อความทั่วไปที่ 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 หรือไม่?

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

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

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