管理字体 - PowerPoint Java API

管理字体相关属性

使用通过 Java 的 Aspose.Slides for PHP 管理段落的字体属性:

  1. 创建一个表示 Presentation 类的实例。
  2. 使用幻灯片的索引获取幻灯片的引用。
  3. 访问幻灯片中的 Placeholder 形状并将其强制转换为 AutoShape
  4. AutoShape 中暴露的 TextFrame 获取 Paragraph
  5. 对段落进行对齐。
  6. 访问 Paragraph 的文本 Portion
  7. 使用 FontData 定义字体,并相应地设置文本 PortionFont
    1. 设置字体为粗体。
    2. 设置字体为斜体。
  8. 使用 Portion 对象暴露的 FillFormat 设置字体颜色。
  9. 将修改后的演示文稿保存为 PPTX 文件。

上述步骤的实现如下。它获取一个未修饰的演示文稿并格式化其中一张幻灯片的字体。随后的截图显示输入文件以及代码片段如何更改它。代码更改了字体、颜色和字体样式。

todo:image_alt_text
图:输入文件中的文本
todo:image_alt_text
图:更新格式的相同文本
  # 实例化一个表示 PPTX 文件的 Presentation 对象
  $pres = new Presentation("FontProperties.pptx");
  try {
    # 通过索引访问幻灯片
    $slide = $pres->getSlides()->get_Item(0);
    # 访问幻灯片中的第一个和第二个占位符,并将其强制转换为 AutoShape
    $tf1 = $slide->getShapes()->get_Item(0)->getTextFrame();
    $tf2 = $slide->getShapes()->get_Item(1)->getTextFrame();
    # 访问第一个 Paragraph
    $para1 = $tf1->getParagraphs()->get_Item(0);
    $para2 = $tf2->getParagraphs()->get_Item(0);
    # 对段落进行对齐
    $para2->getParagraphFormat()->setAlignment(TextAlignment->JustifyLow);
    # 访问第一个 portion
    $port1 = $para1->getPortions()->get_Item(0);
    $port2 = $para2->getPortions()->get_Item(0);
    # 定义新字体
    $fd1 = new FontData("Elephant");
    $fd2 = new FontData("Castellar");
    # 将新字体分配给 portion
    $port1->getPortionFormat()->setLatinFont($fd1);
    $port2->getPortionFormat()->setLatinFont($fd2);
    # 将字体设置为粗体
    $port1->getPortionFormat()->setFontBold(NullableBool::True);
    $port2->getPortionFormat()->setFontBold(NullableBool::True);
    # 将字体设置为斜体
    $port1->getPortionFormat()->setFontItalic(NullableBool::True);
    $port2->getPortionFormat()->setFontItalic(NullableBool::True);
    # 设置字体颜色
    $port1->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port1->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    $port2->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port2->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
    # 将 PPTX 保存到磁盘
    $pres->save("WelcomeFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

设置文本字体属性

要创建文本框并设置其中文本的字体属性:

  1. 创建一个表示 Presentation 类的实例。
  2. 使用索引获取幻灯片的引用。
  3. 向幻灯片添加一个类型为 RectangleAutoShape
  4. 移除与 AutoShape 相关的填充样式。
  5. 访问与 AutoShape 关联的 TextFrame
  6. TextFrame 添加一些文本。
  7. 访问与 TextFrame 关联的 Portion 对象。
  8. 定义要用于 Portion 的字体。
  9. 使用 Portion 对象暴露的相关属性设置其他字体属性,如粗体、斜体、下划线、颜色和高度。
  10. 将修改后的演示文稿写入为 PPTX 文件。

上述步骤的实现如下。

todo:image_alt_text
图:通过 Java 的 Aspose.Slides for PHP 设置某些字体属性的文本
  # 实例化一个表示 PPTX 文件的 Presentation 对象
  $pres = new Presentation();
  try {
    # 获取第一个幻灯片
    $sld = $pres->getSlides()->get_Item(0);
    # 添加一个类型为 Rectangle 的 AutoShape
    $ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 50);
    # 移除与 AutoShape 相关的任何填充样式
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # 访问与 AutoShape 关联的 TextFrame
    $tf = $ashp->getTextFrame();
    $tf->setText("Aspose TextBox");
    # 访问与 TextFrame 关联的 Portion
    $port = $tf->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    # 设置 Portion 的字体
    $port->getPortionFormat()->setLatinFont(new FontData("Times New Roman"));
    # 设置字体的 Bold 属性
    $port->getPortionFormat()->setFontBold(NullableBool::True);
    # 设置字体的 Italic 属性
    $port->getPortionFormat()->setFontItalic(NullableBool::True);
    # 设置字体的 Underline 属性
    $port->getPortionFormat()->setFontUnderline(TextUnderlineType::Single);
    # 设置字体的高度
    $port->getPortionFormat()->setFontHeight(25);
    # 设置字体的颜色
    $port->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    # 将演示文稿保存到磁盘
    $pres->save("pptxFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }