引入控制FontFallBack功能新API!Aspose.Slides v19.10

  Aspose.Slides for .NET是一个独特的演示处理API,它允许应用程序读取、写入、修改和转换PowerPoint演示文稿。作为一个独立的API,它提供了管理PowerPoint关键功能的功能,如管理文本、形状、表格和动画、向幻灯片添加音频和视频、预览幻灯片等,而不需要Microsoft PowerPoint。

  Aspose.Slides for .NET更新至v19.10,支持从幻灯片形状占位符访问提示文本,支持转换为PDF/A后,图像呈现模糊效果,修复在PPT中添加SVG在Ubuntu上引发错误等问题。Aspose.Slides for Java将同步.Net版功能。

  点击文末“了解更多”免费下载最新版Aspose.Slides for .NET

  SLIDESNET-40805 Aspose.Slides中的字体后备 功能

  SLIDESNET-40689 支持从幻灯片形状占位符访问提示文本 功能

  SLIDESNET-41393 转换为PDF / A后,图像呈现模糊效果 功能

  SLIDESNET-41099 保存文档时消耗大量内存增强 功能

  SLIDESNET-41426 使用Aspose.Slides读取动画 增强功能

  SLIDESNET-39722 Aspose Slides使用大量内存来生成小型PPTX 增强功能

  引入了用于初始化和管理FontFallBack功能的新API。当存在为文本指定的字体但该字体不包含必要的字形时,将使用FontFallBack。在这种情况下,新功能允许使用指定的后备字体之一来替换字形。

  以前,“字体替换”可用于动态替换整个文档的字体。如果找不到用于文本的指定字体,则将首先使用字体替换,然后,如果在此新的替换字体中找不到某些字形,则将使用FontFallBack(如果为相应范围定义了任何字体)。在其他情况下,FontFallBack会先使用,然后FontSubstitution。可以为多个Unicode范围指定必需的后备字体,作为FontFallBackRule对象的集合。

  这里是一个例子:

  long startUnicodeIndex=0x0B80;

  long endUnicodeIndex=0x0BFF;

  IFontFallBackRule firstRule=new FontFallBackRule (startUnicodeIndex, endUnicodeIndex, "Vijaya");

  IFontFallBackRule secondRule=new FontFallBackRule (0x3040, 0x309F, "MS Mincho, MS Gothic");

  //Also the fonts list can be added in several ways:

  String[] fontNames=new String[] { "Segoe UI Emoji, Segoe UI Symbol", "Arial"};

  IFontFallBackRule thirdRule=new FontFallBackRule (0x1F300, 0x1F64F, fontNames);复制代码

  当然,必须将规则添加到列表(

  FontFallBackRulesCollection)中,可以将其分配给FontManager以便在渲染中使用:

  Presentation presentation=new Presentation();

  try {

  IFontFallBackRulesCollection userRulesList=new FontFallBackRulesCollection();

  userRulesList.add(new FontFallBackRule(0x0B80, 0x0BFF, "Vijaya"));

  userRulesList.add(new FontFallBackRule(0x3040, 0x309F, "MS Mincho, MS Gothic"));

  presentation.getFontsManager().setFontFallBackRulesCollection(userRulesList);

  } finally {

  if (presentation !=null) presentation.dispose();

  }复制代码

  几个规则的范围可以重叠。在这种情况下,重叠规则中的字体将按照规则被添加到列表的顺序进行合并和排列。只需在管理器中分配所需的列表,即可快速使用具有不同规则集的多个集合。如果不想使用多个列表,则不必创建新集合,可以直接从FontManager自动检索新的链接实例:

  IFontFallBackRulesCollection userRulesList=presentation.getFontsManager().getFontFallBackRulesCollection();复制代码

  以下是如何使用新功能进行渲染的代码段:

  Presentation presentation=new Presentation(path + "MyPresentation.pptx");

  try {

  IFontFallBackRulesCollection userRulesList=presentation.getFontsManager().getFontFallBackRulesCollection();

  userRulesList.add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));

  ImageIO.write(presentation.getSlides().get_Item(0).getThumbnail (1f,1f), "PNG", new java.File(path + "Slide0.png"));

  } finally {

  if (presentation !=null) presentation.dispose();

  }复制代码

  如果您有任何疑问或需求,请随时留言讨论。

posted @ 2022-02-11 19:41  ebuybay  阅读(125)  评论(0编辑  收藏  举报