กำหนดค่าการแทนที่แบบอักษรในงานนำเสนอด้วย Python
ภาพรวม
การแทนที่แบบอักษรช่วยให้ Aspose.Slides ใช้แบบอักษรที่มีอยู่แทนแบบอักษรที่ไม่สามารถเข้าถึงได้เมื่อนำเสนอถูกเรนเดอร์หรือแปลง การแทนที่จะส่งผลต่อผลลัพธ์ที่เรนเดอร์เท่านั้น; มันไม่ได้เปลี่ยนแบบอักษรที่กำหนดให้กับเนื้อหาในงานนำเสนอ
คุณสามารถกำหนดแบบอักษรที่จะใช้เมื่อแบบอักษรเฉพาะไม่พร้อมใช้งานได้ และคุณสามารถตรวจสอบการแทนที่ที่ Aspose.Slides จะทำขณะเรนเดอร์ นี้ช่วยให้ผลลัพธ์สอดคล้องกันในสภาพแวดล้อมที่มีแบบอักษรติดตั้งต่างกัน
หากแบบอักษรพร้อมใช้งานแต่ไม่มีรูปแบบหนาแยกเฉพาะ โปรดดูที่ จัดการแบบอักษรที่ไม่มีรูปแบบหนาแยกเฉพาะ ส่วนนี้อธิบายวิธีเรสเตอร์ไอซ์ข้อความที่ได้รับผลกระทบระหว่างการส่งออกเป็น PDF และผลที่ตามมาสำหรับการเลือกข้อความ การค้นหา และการสเกล
รับการแทนที่แบบอักษร
ใช้เมธอด FontsManager.get_substitutions เพื่อกำหนดว่าบางแบบอักษรจะถูกแทนที่เมื่อการนำเสนอถูกเรนเดอร์หรือไม่ เมธอดจะคืนค่าอ็อบเจกต์ FontSubstitutionInfo ที่ระบุชื่อแบบอักษรต้นฉบับและแบบอักษรที่แทนที่
ตัวอย่าง Python ด้านล่างแสดงรายการการแทนที่แบบอักษรทั้งหมดสำหรับงานนำเสนอ:
import aspose.slides as slides
with slides.Presentation("Presentation.pptx") as presentation:
for substitution in presentation.fonts_manager.get_substitutions():
print(f"{substitution.original_font_name} -> {substitution.substituted_font_name}")
รับการแทนที่แบบอักษรสำหรับสไลด์ที่เลือก
ใช้ FontsManager.get_substitutions พร้อมรายการดัชนีสไลด์เพื่อพิจารณาการแทนที่ที่จำเป็นสำหรับการเรนเดอร์สไลด์เฉพาะเท่านั้น สิ่งนี้มีประโยชน์เมื่อคุณกำลังเรนเดอร์หรือส่งออกส่วนของงานนำเสนอ ตรวจสอบงานนำเสนอขนาดใหญ่แบบเพิ่มขั้น ตรวจหาสไลด์ที่พึ่งพาแบบอักษรที่ไม่มีอยู่ เตรียมชุดแบบอักษรขั้นต่ำสำหรับเซิร์ฟเวอร์หรือคอนเทนเนอร์ หรือวินิจฉัยความแตกต่างของการเรนเดอร์โดยไม่ต้องประมวลผลสไลด์ที่ไม่เกี่ยวข้อง
รายการประกอบด้วยดัชนีสไลด์ที่เริ่มจาก 1: 1 ระบุสไลด์แรก ในขณะเดียวกันคอลเลกชัน Presentation.slides ใช้ดัชนีเริ่มจาก 0 ดังนั้นสไลด์เดียวกันจะเข้าถึงได้ด้วย presentation.slides[0] ควรคำนึงถึงความแตกต่างนี้เมื่อตั้งค่ารายการเพื่อหลีกเลี่ยงข้อผิดพลาด off‑by‑one
เรียกเมธอดผ่านคุณสมบัติ Presentation.fonts_manager มันจะคืนค่าการแทนที่ที่กำหนดขณะเรนเดอร์สไลด์ที่เลือกเท่านั้น แต่ละผลลัพธ์เป็นอ็อบเจกต์ FontSubstitutionInfo ที่มีชื่อแบบอักษรต้นฉบับและแบบอักษรที่แทนที่ ผลลัพธ์สะท้อนสภาพแวดล้อมแบบอักษรปัจจุบัน กฎ fallback ที่กำหนดไว้ กฎการแทนที่ที่จัดเก็บใน IFontSubstRuleCollection และ แบบอักษรที่โหลดจากภายนอก
การแทนที่เดียวกันอาจจำเป็นสำหรับสไลด์ที่เลือกหลายสไลด์ ให้ทำการกำจัดรายการซ้ำเมื่อคุณสร้างรายการทรัพยากรแบบอักษรหรือรายงาน preflight ตัวอย่างต่อไปนี้รายงานการแทนที่ที่คืนค่าแต่ละรายการแล้วสร้างรายการแบบอักษรแผนที่ที่เป็นเอกลักษณ์เรียงลำดับ:
import aspose.slides as slides
with slides.Presentation("Presentation.pptx") as presentation:
selected_slides = [1, 3, 5]
substitutions = list(presentation.fonts_manager.get_substitutions(selected_slides))
print("Substitutions for the selected slides:")
for substitution in substitutions:
print(f"{substitution.original_font_name} -> {substitution.substituted_font_name}")
preflight_entries = [f"{substitution.original_font_name} -> {substitution.substituted_font_name}" for substitution in substitutions]
unique_preflight_entries = {entry.casefold(): entry for entry in preflight_entries}
sorted_preflight_entries = sorted(unique_preflight_entries.values(), key=str.casefold)
print("Deduplicated font preflight report:")
for entry in sorted_preflight_entries:
print(entry)
คลาส FontsManager ให้บริการเมธอดทั้งสองรูปแบบ เลือกหนึ่งตามขอบเขตของการดำเนินการเรนเดอร์:
| วิธีเรียก | ใช้เมื่อ |
|---|---|
| get_substitutions โดยไม่มีอาร์กิวเมนต์ | คุณต้องการการแทนที่สำหรับงานนำเสนอทั้งหมด |
| get_substitutions พร้อมรายการดัชนีสไลด์ | คุณต้องการการแทนที่สำหรับช่วงที่เลือก การตรวจสอบแบบเพิ่มขั้น หรือการส่งออกบางส่วน |
ตั้งค่ากฎการแทนที่แบบอักษร
เพื่อระบุแบบอักษรที่ Aspose.Slides ควรใช้เมื่อแบบอักษรต้นฉบับไม่พร้อมใช้งาน:
- โหลดงานนำเสนอ
- สร้างการกำหนดแบบอักษรสำหรับแบบอักษรต้นฉบับและแบบอักษรแทนที่
- สร้างอ็อบเจกต์ FontSubstRule พร้อมเงื่อนไข WHEN_INACCESSIBLE
- เพิ่มกฎลงใน FontSubstRuleCollection
- กำหนดคอลเลกชันให้กับคุณสมบัติ FontsManager.font_subst_rule_list
- เรนเดอร์หรือแปลงงานนำเสนอ
ตัวอย่าง Python ด้านล่างแทนที่ Arial ด้วย SomeRareFont เมื่อ SomeRareFont ไม่พร้อมใช้งานแล้วเรนเดอร์สไลด์แรกเพื่อยืนยันผลลัพธ์ แบบอักษรแทนที่ต้องพร้อมใช้งานสำหรับ Aspose.Slides
import aspose.slides as slides
with slides.Presentation("Fonts.pptx") as presentation:
source_font = slides.FontData("SomeRareFont")
substitute_font = slides.FontData("Arial")
substitution_rule = slides.FontSubstRule(source_font, substitute_font, slides.FontSubstCondition.WHEN_INACCESSIBLE)
substitution_rules = slides.FontSubstRuleCollection()
substitution_rules.add(substitution_rule)
presentation.fonts_manager.font_subst_rule_list = substitution_rules
with presentation.slides[0].get_image(1, 1) as image:
image.save("slide.jpg", slides.ImageFormat.JPEG)
หมายเหตุ
สำหรับการเปลี่ยนแบบอักษรทั่วงานนำเสนอโดยไม่มีเงื่อนไข โปรดดูที่ การเปลี่ยนแบบอักษรข้อจำกัดสำหรับแบบอักษรสมการคณิตศาสตร์
กฎการแทนที่แบบอักษรเป็นส่วนหนึ่งของกระบวนการเลือกแบบอักษรมาตรฐานที่ใช้ขณะเรนเดอร์และแปลง พวกมันทำงานกับข้อความทั่วไปเมื่อ Aspose.Slides สามารถแทนที่แบบอักษรที่ไม่สามารถเข้าถึงได้ด้วยแบบอักษรที่ระบุในกฎ
สมการ Office Math มีความต้องการพิเศษ หากสมการใช้ Cambria Math Aspose.Slides อาจจำเป็นต้องใช้แบบอักษรนั้นโดยตรงเพื่อคำนวณและเรนเดอร์โครงร่างสมการ กฎที่แทนที่ด้วยแบบอักษรคณิตศาสตร์อื่น เช่น STIX Two Math ไม่สามารถแทนที่ Cambria Math สำหรับวัตถุประสงค์นี้ได้ และการเรนเดอร์อาจยังรายงานว่า Cambria Math จำเป็น
เพื่อเรนเดอร์หรือแปลงงานนำเสนอที่มีสมการเช่นนี้ ให้ทำให้ Cambria Math พร้อมใช้งานสำหรับ Aspose.Slides ติดตั้งในระบบปฏิบัติการหรือโหลดเป็น แบบอักษรภายนอก
ข้อจำกัดนี้ใช้กับการจัดรูปสมการเท่านั้น กฎการแทนที่ที่กล่าวถึงข้างต้นยังคงใช้กับข้อความทั่วไปในงานนำเสนอ
คำถามที่พบบ่อย
ความแตกต่างระหว่างการเปลี่ยนแบบอักษรและการแทนที่แบบอักษรคืออะไร?
การเปลี่ยนแบบอักษร เปลี่ยนแบบอักษรหนึ่งเป็นอีกแบบหนึ่งทั่วงานนำเสนออย่างตั้งใจ การแทนที่แบบอักษรเลือกแบบอักษรสำหรับผลลัพธ์ที่เรนเดอร์เมื่อเงื่อนไขที่กำหนดตรงตามที่ตั้งค่าไว้ เช่น เมื่อแบบอักษรต้นฉบับไม่มีอยู่
กฎการแทนที่จะถูกนำไปใช้เมื่อใด?
กฎเข้าร่วมใน ลำดับการเลือกแบบอักษร ระหว่างการเรนเดอร์และแปลง ด้วย WHEN_INACCESSIBLE กฎจะใช้เฉพาะเมื่อ Aspose.Slides ไม่สามารถเข้าถึงแบบอักษรต้นฉบับได้
จะเกิดอะไรขึ้นเมื่อแบบอักษรขาดหายและไม่มีการกำหนดกฎการแทนที่?
Aspose.Slides จะเลือกแบบอักษรที่ใกล้เคียงที่สุดที่มีอยู่ตามกระบวนการเลือกแบบอักษรของมัน ผลลัพธ์ขึ้นอยู่กับแบบอักษรที่มีในสภาพแวดล้อมการทำงาน
ฉันสามารถโหลดแบบอักษรภายนอกเพื่อหลีกเลี่ยงการแทนที่ได้หรือไม่?
ได้ คุณสามารถ โหลดแบบอักษรภายนอก เพื่อให้ Aspose.Slides ใช้ได้ระหว่างการเรนเดอร์และแปลง
Aspose แจกจ่ายแบบอักษรมาพร้อมกับไลบรารีหรือไม่?
ไม่ คุณต้องรับผิดชอบในการจัดหาแบบอักษรและปฏิบัติตามเงื่อนไขการอนุญาตของแต่ละแบบอักษร
ผลลัพธ์การแทนที่อาจแตกต่างระหว่าง Windows, Linux, และ macOS หรือไม่?
ใช่ ฟอนท์ที่ติดตั้งและตำแหน่งการค้นหาแบบอักษรแตกต่างกันตามระบบปฏิบัติการ ดังนั้นแบบอักษรที่พร้อมใช้งานในเครื่องหนึ่งอาจต้องแทนที่ในเครื่องอื่น
ฉันจะทำให้การเลือกแบบอักษรสม่ำเสมอในการแปลงแบบกลุ่มได้อย่างไร?
ใช้ไฟล์แบบอักษรและเวอร์ชันเดียวกันบนทุกเครื่องหรือคอนเทนเนอร์ โหลดแบบอักษรภายนอกที่จำเป็น และ ฝังแบบอักษร เมื่อใบอนุญาตอนุญาต คุณยังสามารถเรียกใช้ FontsManager.get_substitutions ก่อนการส่งออกเพื่อระบุการแทนที่ที่ไม่คาดคิด