【问题标题】:Is there a way to adjust Powerpoint chart inside of web application?有没有办法在 Web 应用程序中调整 Powerpoint 图表?
【发布时间】:2020-01-08 10:22:33
【问题描述】:

当前行为: 我正在使用 Aspose Slides 生成 PowerPoint 演示文稿,并且在几张幻灯片中添加了一些带有连接器的图表(简单矩形)。

我想要达到的目标: 我希望有可能在我的网络应用程序中手动调整一些形状/连接器的位置,并将这些调整反映在最终的 powerpoint 文件中。

示例:

下一个代码,例如正在创建 3 个矩形和其中 2 个之间的连接器。此连接器正在穿过第三个矩形,我希望用户进行最终调整,以移动相交的矩形或重新排列连接器本身

using (var presentation = new Presentation())
        {
            var slide = presentation.Slides[0];
            var primaryShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 50, 100, 30);
            primaryShape.TextFrame.Text = "shape 1";

            var targetShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 350, 250, 100, 30);
            targetShape.TextFrame.Text = "shape 2";

            var intersectedShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 300, 180, 100, 30);
            intersectedShape.TextFrame.Text = "intersected shape";

            var arrow = slide.Shapes.AddConnector(ShapeType.CurvedConnector2, 0, 0, 10, 10, true);
            arrow.LineFormat.FillFormat.FillType = FillType.Solid;
            arrow.LineFormat.FillFormat.SolidFillColor.Color = System.Drawing.Color.Red;
            arrow.StartShapeConnectionSiteIndex = 3;
            arrow.StartShapeConnectedTo = primaryShape;
            arrow.EndShapeConnectedTo = targetShape;
            arrow.EndShapeConnectionSiteIndex = 0;

            presentation.Save(fileNameToSave, Aspose.Slides.Export.SaveFormat.Pptx);
        }

我的尝试和问题:

1) 我尝试在 Angular 图表框架中显示我的图表,因为我知道矩形的位置和连接器的类型。问题:Aspose 没有提供连接器通过的确切信息,例如它们是否与某些形状重叠。同样的问题是用于保存返回过程。如果某个连接器与形状交叉,我将在我的网络应用程序中对其进行调整 - 我无法将其 1 对 1 保存在 powerpoint 幻灯片中。 一般来说,这里的问题是我正在介绍我自己的关于如何绘制连接器的规则,并且它符合 powerpoint 引擎规则。

2) 我尝试将图表导出为 SVG,以便对 SVG 对象进行一些操作,然后将其导入回来。 问题:SVG 将连接器表示为带有一些连接器图像的矩形。没有连接信息,什么都没有。此外,在从 SVG 导入回 Powerpoint 的过程中 - 结果是完全不可预测的,形状的连接不会被存储。 PPT 对以后的操作变得毫无用处。

问题

还有其他的这种操纵方式吗? 也许是另一种方法——比如使用本机 Office API?我也在考虑任何嵌入式调整的方式,例如有一个 iframe,我只能在其中显示我的图表(从初始文件中提取)并允许调整,然后将其导入回来。在这种情况下,它将保证 1 对 1 的关系,并且我不会在中间抛出我自己的绘图规则,但我没有发现任何可以实现这种行为的方法。只有 Office 365,但不能以我知道的方式集成。

感谢您的建议

【问题讨论】:

    标签: web powerpoint aspose-slides


    【解决方案1】:

    @约翰康斯坦丁,

    我已经观察到您的要求,很遗憾地告诉大家,目前 Aspose.Slides 中没有任何规定可以返回幻灯片上连接点的实际 X、Y 坐标。但是,我们在问题跟踪系统中创建了一个新的功能请求,其 ID 为 SLIDESNET-41675,它将返回幻灯片上连接点的坐标。使用这些点,如果该线穿过任何已添加的形状,您可以绘制任意线并设计您自己的逻辑。我希望此功能在实施后对您有所帮助。

    就您关于 SVG 到幻灯片的第二点而言,我想分享的是,当您将 SVG 导入到幻灯片时,它是作为图像而不是作为幻灯片对象或形状导入的。如果您在将 SVG 导入幻灯片时遇到任何问题,请将源 SVG 和生成的 PPTX 分享给我们,我们将尽力为您提供进一步的帮助。

    我在 Aspose 担任支持开发人员/宣传员。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-28
      • 2023-03-16
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2018-05-28
      相关资源
      最近更新 更多