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

บทนำ

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

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

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

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

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

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

  # โหลดการนำเสนอ
  $pres = new Presentation("Fonts.pptx");
  try {
    # โหลดฟอนต์ต้นทางที่จะแทนที่
    $sourceFont = new FontData("SomeRareFont");
    # โหลดฟอนต์ใหม่
    $destFont = new FontData("Arial");
    # เพิ่มกฎฟอนต์สำหรับการแทนที่ฟอนต์
    $fontSubstRule = new FontSubstRule($sourceFont, $destFont, FontSubstCondition->WhenInaccessible);
    # เพิ่มกฎลงในคอลเลกชันกฎการแทนฟอนต์
    $fontSubstRuleCollection = new FontSubstRuleCollection();
    $fontSubstRuleCollection->add($fontSubstRule);
    # เพิ่มคอลเลกชันกฎฟอนต์ลงในรายการกฎ
    $pres->getFontsManager()->setFontSubstRuleList($fontSubstRuleCollection);
    # ฟอนต์ Arial จะถูกใช้แทน SomeRareFont เมื่อฟอนต์หลังจากนั้นไม่สามารถเข้าถึงได้
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(1.0, 1.0);
    # บันทึกรูปภาพลงดิสก์ในรูปแบบ JPEG
    try {
      $slideImage->save("Thumbnail_out.jpg", ImageFormat::Jpeg);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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