ฝังฟอนต์ในงานนำเสนอด้วย Python

บทนำ

การฝังฟอนต์ใน PowerPoint ทำให้การนำเสนอของคุณคงรูปลักษณ์ตามที่ตั้งใจไว้บนระบบต่างๆ ไม่ว่าจะใช้ฟอนต์ที่เป็นเอกลักษณ์เพื่อความสร้างสรรค์หรือฟอนต์มาตรฐาน การฝังฟอนต์ช่วยป้องกันการรบกวนของข้อความและการจัดวาง

หากคุณใช้ฟอนต์จากบุคคลภายนอกหรือฟอนต์ที่ไม่เป็นมาตรฐานเพื่อความสร้างสรรค์ในงานของคุณ คุณก็มีเหตุผลเพิ่มเติมในการฝังฟอนต์ของคุณ ส่วนหากไม่ได้ฝังฟอนต์ (ไม่มีการฝัง) ข้อความหรือเลขบนสไลด์ การจัดวาง การออกแบบ ฯลฯ อาจเปลี่ยนแปลงหรือกลายเป็นสี่เหลี่ยมสับสน

ใช้คลาส FontsManager, FontData, และ Compress เพื่อจัดการฟอนต์ที่ฝัง

รับและลบฟอนต์ที่ฝัง

ดึงหรือเอาฟอนต์ที่ฝังออกจากการนำเสนอได้อย่างง่ายดายด้วยเมธอด get_embedded_fonts และ remove_embedded_font

โค้ด Python นี้จะแสดงวิธีการดึงและลบฟอนต์ที่ฝังออกจากการนำเสนอ:

import aspose.slides as slides
import aspose.pydrawing as draw

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์งานนำเสนอ
with slides.Presentation("EmbeddedFonts.pptx") as presentation:
    slide = presentation.slides[0]

    # เรนเดอร์สไลด์ที่มีกรอบข้อความซึ่งใช้ฟอนต์ 'FunSized' ที่ฝังไว้
    with slide.get_image(draw.Size(960, 720)) as image:
        image.save("picture1_out.png", slides.ImageFormat.PNG)

    fonts_manager = presentation.fonts_manager

    # ดึงฟอนต์ที่ฝังทั้งหมด
    embedded_fonts = fonts_manager.get_embedded_fonts()

    # ค้นหาฟอนต์ 'Calibri'
    font_data = list(filter(lambda data : data.font_name == "Calibri", embedded_fonts))[0]

    # ลบฟอนต์ 'Calibri'
    fonts_manager.remove_embedded_font(font_data)

    # เรนเดอร์สไลด์; ฟอนต์ 'Calibri' จะถูกแทนที่ด้วยฟอนต์ที่มีอยู่
    with slide.get_image(draw.Size(960, 720)) as image:
        image.save("picture2_out.png", slides.ImageFormat.PNG)

    # บันทึกงานนำเสนอโดยไม่มีฟอนต์ 'Calibri' ที่ฝังลงดิสก์
    presentation.save("WithoutEmbeddedFonts.ppt", slides.export.SaveFormat.PPT)

เพิ่มฟอนต์ที่ฝัง

โดยใช้ enum EmbedFontCharacters และสอง overload ของเมธอด add_embedded_font คุณสามารถเลือกกฎการฝังที่ต้องการเพื่อฝังฟอนต์ในงานนำเสนอ โค้ด Python นี้จะแสดงวิธีการฝังและเพิ่มฟอนต์ให้กับการนำเสนอ:

import aspose.slides as slides

# โหลดงานนำเสนอ.
with slides.Presentation("Fonts.pptx") as presentation:
    all_fonts = presentation.fonts_manager.get_fonts()
    embedded_fonts = presentation.fonts_manager.get_embedded_fonts()

    for font in all_fonts:
        if font not in embedded_fonts:
            presentation.fonts_manager.add_embedded_font(font, slides.export.EmbedFontCharacters.ALL)

    # บันทึกงานนำเสนอลงดิสก์.
    presentation.save("AddEmbeddedFont.pptx", slides.export.SaveFormat.PPTX)

บีบอัดฟอนต์ที่ฝัง

ปรับขนาดไฟล์ให้เล็กลงโดยการบีบอัดฟอนต์ที่ฝังด้วยเมธอด compress_embedded_fonts

ตัวอย่างโค้ดสำหรับการบีบอัด:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    slides.lowcode.Compress.compress_embedded_fonts(presentation)
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

ถามบ่อย

ฉันจะรู้ได้อย่างไรว่าฟอนต์เฉพาะในงานนำเสนอจะยังคงถูกแทนที่ระหว่างการเรนเดอร์แม้จะฝังแล้ว?

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

การฝังฟอนต์ “ระบบ” เช่น Arial/Calibri มีประโยชน์หรือไม่?

โดยทั่วไปไม่-โดยส่วนใหญ่ฟอนต์เหล่านี้พร้อมใช้งานเสมอ อย่างไรก็ตามเพื่อความพกพาเต็มรูปแบบในสภาพแวดล้อม “thin” (Docker, เซิร์ฟเวอร์ Linux ที่ไม่มีฟอนต์ติดตั้งไว้ล่วงหน้า) การฝังฟอนต์ระบบสามารถขจัดความเสี่ยงจากการแทนที่ที่ไม่คาดคิดได้