ฝังฟอนต์ในงานนำเสนอด้วย 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 ที่ไม่มีฟอนต์ติดตั้งไว้ล่วงหน้า) การฝังฟอนต์ระบบสามารถขจัดความเสี่ยงจากการแทนที่ที่ไม่คาดคิดได้