管理墨水

PowerPoint提供墨水功能,让您可以绘制非标准图形,这可以用来突出其他对象,显示连接和过程,并引起观众对幻灯片中特定项目的关注。

Aspose.Slides提供您创建和管理墨水对象所需的所有墨水类型(例如,Ink类)。

常规对象与墨水对象之间的区别

PowerPoint幻灯片上的对象通常由形状对象表示。形状对象在最简单的形式中是一个容器,它定义了对象自身的区域(框架)及其属性。后者包括容器区域大小、容器的形状、容器的背景等。有关信息,请参见形状布局格式

但是,当PowerPoint处理墨水对象时,它忽略对象框架(容器)的所有属性,除了其大小。容器区域的大小由标准的widthheight值确定:

ink_powerpoint1

墨水轨迹

轨迹是记录用户书写数字墨水时笔迹的基本元素或标准。轨迹是描述连接点序列的记录。

编码的最简单形式指定了每个采样点的X和Y坐标。当所有连接的点被渲染时,它们会产生这样的图像:

ink_powerpoint2

绘制的笔刷属性

您可以使用笔刷绘制连接轨迹元素点的线。笔刷具有其自己的颜色和大小,分别对应于Brush.ColorBrush.Size属性。

设置墨水笔刷颜色

以下Java代码向您展示如何设置笔刷的颜色:

Presentation pres = new Presentation("pres.pptx");
try {
    IInk ink = (IInk)pres.getSlides().get_Item(0).getShapes().get_Item(0);
    IInkTrace[] traces = ink.getTraces();
    IInkBrush brush = traces[0].getBrush();
    Color brushColor = brush.getColor();
    brush.setColor(Color.RED);
} finally {
    if (pres != null) pres.dispose();
}

设置墨水笔刷大小

以下Java代码向您展示如何设置笔刷的大小:

Presentation pres = new Presentation("pres.pptx");
try {
    IInk ink = (IInk)pres.getSlides().get_Item(0).getShapes().get_Item(0);
    IInkTrace[] traces = ink.getTraces();
    IInkBrush brush = traces[0].getBrush();
    Dimension2D brushSize = brush.getSize();
    brush.setSize(new Dimension(5, 10));
} finally {
    if (pres != null) pres.dispose();
}

一般而言,笔刷的宽度和高度不匹配,因此PowerPoint不会显示笔刷大小(数据部分呈灰色)。但是当笔刷宽度和高度匹配时,PowerPoint会以这种方式显示其大小:

ink_powerpoint3

为了清楚起见,让我们增加墨水对象的高度并查看重要的尺寸:

ink_powerpoint4

容器(框架)不考虑笔刷的大小——它总是假设线的厚度为零(见最后一张图片)。

因此,为了确定整个墨水对象的可见区域,我们必须考虑轨迹对象的笔刷大小。在这里,目标对象(手写文本轨迹对象)已缩放到容器(框架)大小。当容器(框架)的大小变化时,笔刷大小保持不变,反之亦然。

ink_powerpoint5

PowerPoint在处理文本时表现出相同的行为:

ink_powerpoint6

进一步阅读