嵌入字体
Contents
[
Hide
]
PowerPoint 中的嵌入字体 在您希望演示文稿在任何系统或设备上正确显示时非常有用。如果您使用了第三方或非标准字体,因为您在工作中富有创意,那么您更有理由嵌入您的字体。否则(没有嵌入字体),幻灯片上的文本或数字、布局、样式等可能会改变或变成令人困惑的矩形。
FontsManager 类、FontData 类、Compress 类及其接口包含了您在 PowerPoint 演示文稿中处理嵌入字体所需的大多数属性和方法。
获取或移除演示文稿中的嵌入字体
Aspose.Slides 提供了 get_embedded_fonts()
方法(由 FontsManager 类公开),允许您获取(或查明)嵌入到演示文稿中的字体。要移除字体,可以使用 remove_embedded_font(font_data)
方法(由同一类公开)。
以下 Python 代码演示了如何获取和移除演示文稿中的嵌入字体:
import aspose.slides as slides
import aspose.pydrawing as draw
# 实例化一个表示演示文稿文件的 Presentation 对象
with slides.Presentation(path + "EmbeddedFonts.pptx") as presentation:
# 渲染一个包含使用嵌入字体 "FunSized" 的文本框的幻灯片
with presentation.slides[0].get_image(draw.Size(960, 720)) as img:
img.save("picture1_out.png", slides.ImageFormat.PNG)
fontsManager = presentation.fonts_manager
# 获取所有嵌入字体
embeddedFonts = fontsManager.get_embedded_fonts()
# 查找 "Calibri" 字体
funSizedEmbeddedFont = list(filter(lambda data : data.font_name == "Calibri", embeddedFonts))[0]
# 移除 "Calibri" 字体
fontsManager.remove_embedded_font(funSizedEmbeddedFont)
# 渲染演示文稿;"Calibri" 字体被替换为现有字体
with presentation.slides[0].get_image(draw.Size(960, 720)) as img:
img.save("picture2_out.png", slides.ImageFormat.PNG)
# 将没有嵌入 "Calibri" 字体的演示文稿保存到磁盘
presentation.save("WithoutManageEmbeddedFonts_out.ppt", slides.export.SaveFormat.PPT)
向演示文稿添加嵌入字体
使用 EmbedFontCharacters 枚举和 add_embedded_font(font_data, embed_font_rule)
方法的两个重载,您可以选择您的首选(嵌入)规则来将字体嵌入到演示文稿中。以下 Python 代码演示了如何嵌入和添加字体到演示文稿:
import aspose.slides as slides
# 加载演示文稿
with slides.Presentation(path + "Fonts.pptx") as presentation:
# 加载要替换的源字体
sourceFont = slides.FontData("Arial")
allFonts = presentation.fonts_manager.get_fonts()
embeddedFonts = presentation.fonts_manager.get_embedded_fonts()
for font in allFonts:
if font not in embeddedFonts:
presentation.fonts_manager.add_embedded_font(font, slides.export.EmbedFontCharacters.ALL)
# 将演示文稿保存到磁盘
presentation.save("AddEmbeddedFont_out.pptx", slides.export.SaveFormat.PPTX)
压缩嵌入字体
为了让您可以压缩嵌入演示文稿中的字体并减少文件大小,Aspose.Slides 提供了 compress_embedded_fonts
方法(由 Compress 类公开)。
以下 Python 代码演示了如何压缩嵌入的 PowerPoint 字体:
import aspose.slides as slides
with slides.Presentation("pres.pptx") as pres:
slides.lowcode.Compress.compress_embedded_fonts(pres)
pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)