在演示文稿中使用 JavaScript 管理字体
Contents
[
Hide
]
管理字体相关属性
演示文稿通常包含文本和图像。文本可以以多种方式进行格式化,以突出显示特定的章节和单词,或符合公司样式。文本格式化帮助用户改变演示内容的外观和感受。本文展示了如何使用 Aspose.Slides for Node.js via Java 配置幻灯片上文本段落的字体属性。
使用 Aspose.Slides for Node.js via Java 管理段落的字体属性:
- 创建 Presentation 类的实例。
- 使用索引获取幻灯片的引用。
- 访问幻灯片中的 Placeholder 形状,并将其强制转换为 AutoShape。
- 从 AutoShape 提供的 TextFrame 中获取 Paragraph。
- 对段落进行两端对齐。
- 访问 Paragraph 的文本 Portion。
- 使用 FontData 定义字体,并相应地设置文本 Portion 的 Font。
- 将字体设置为粗体。
- 将字体设置为斜体。
- 使用 Portion 对象提供的 FillFormat 设置字体颜色。
- 将修改后的演示文稿保存为 PPTX 文件。
以下给出上述步骤的实现示例。它获取一个未经修饰的演示文稿,并在其中一张幻灯片上格式化字体。下面的截图展示了输入文件以及代码片段如何更改它。代码更改了字体、颜色和字体样式。
![]() |
|---|
| 图例:输入文件中的文本 |
![]() |
|---|
| 图例:相同文本的更新后格式 |
// 实例化一个表示 PPTX 文件的 Presentation 对象
var pres = new aspose.slides.Presentation("FontProperties.pptx");
try {
// 使用幻灯片位置访问幻灯片
var slide = pres.getSlides().get_Item(0);
// 访问幻灯片中的第一个和第二个占位符,并将其强制转换为 AutoShape
var tf1 = slide.getShapes().get_Item(0).getTextFrame();
var tf2 = slide.getShapes().get_Item(1).getTextFrame();
// 访问第一个段落
var para1 = tf1.getParagraphs().get_Item(0);
var para2 = tf2.getParagraphs().get_Item(0);
// 两端对齐段落
para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.JustifyLow);
// 访问第一个 Portion
var port1 = para1.getPortions().get_Item(0);
var port2 = para2.getPortions().get_Item(0);
// 定义新字体
var fd1 = new aspose.slides.FontData("Elephant");
var fd2 = new aspose.slides.FontData("Castellar");
// 将新字体分配给 Portion
port1.getPortionFormat().setLatinFont(fd1);
port2.getPortionFormat().setLatinFont(fd2);
// 将字体设为粗体
port1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True);
port2.getPortionFormat().setFontBold(aspose.slides.NullableBool.True);
// 将字体设为斜体
port1.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True);
port2.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True);
// 设置字体颜色
port1.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
port2.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN"));
// 将 PPTX 保存到磁盘
pres.save("WelcomeFont.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
设置文本字体属性
如 管理字体相关属性 中所述,Portion 用于在段落中保存具有相似格式的文本。本文展示了如何使用 Aspose.Slides for Node.js via Java 创建一个包含文本的文本框,然后定义特定的字体以及字体族类别的各种其他属性。
创建文本框并设置其中文本的字体属性:
- 创建 Presentation 类的实例。
- 使用索引获取幻灯片的引用。
- 向幻灯片添加类型为 Rectangle 的 AutoShape。
- 移除与 AutoShape 关联的填充样式。
- 访问 AutoShape 的 TextFrame。
- 向 TextFrame 添加一些文本。
- 访问与 TextFrame 关联的 Portion 对象。
- 为 Portion 定义要使用的字体。
- 使用 Portion 对象提供的相关属性,设置其他字体属性,如粗体、斜体、下划线、颜色和高度。
- 将修改后的演示文稿写入为 PPTX 文件。
![]() |
|---|
| 图例:由 Aspose.Slides for Node.js via Java 设置的带有部分字体属性的文本 |
// 实例化一个表示 PPTX 文件的 Presentation 对象
var pres = new aspose.slides.Presentation();
try {
// 获取第一张幻灯片
var sld = pres.getSlides().get_Item(0);
// 添加矩形类型的 AutoShape
var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50);
// 移除与 AutoShape 关联的所有填充样式
ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
// 访问与 AutoShape 关联的 TextFrame
var tf = ashp.getTextFrame();
tf.setText("Aspose TextBox");
// 访问与 TextFrame 关联的 Portion
var port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0);
// 为 Portion 设置字体
port.getPortionFormat().setLatinFont(new aspose.slides.FontData("Times New Roman"));
// 设置字体的粗体属性
port.getPortionFormat().setFontBold(aspose.slides.NullableBool.True);
// 设置字体的斜体属性
port.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True);
// 设置字体的下划线属性
port.getPortionFormat().setFontUnderline(aspose.slides.TextUnderlineType.Single);
// 设置字体的高度
port.getPortionFormat().setFontHeight(25);
// 设置字体的颜色
port.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
// 将演示文稿保存到磁盘
pres.save("pptxFont.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}


