常见问题

常见问题

我如何安装 Aspose.Slides FOSS?

使用 .NET CLI 从 NuGet 安装。需要 .NET 9.0 或更高版本。

dotnet add package Aspose.Slides.Foss

验证安装:

using Aspose.Slides.Foss;

using var prs = new Presentation();
Console.WriteLine($"Slides: {prs.Slides.Count}");

无需 Microsoft Office 或其他系统运行时。


为什么必须使用 using var prs = new Presentation();

Presentation 类实现 IDisposable 并管理内部 XML 资源。没有 using 语句时,这些资源在 Presentation 对象超出作用域时不会被释放,可能导致资源泄漏或文件锁定。

始终遵循此模式:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation("input.pptx");
// work here
prs.Save("output.pptx", SaveFormat.Pptx);

我可以保存成哪些文件格式?

仅支持 PPTX

using Aspose.Slides.Foss.Export;

prs.Save("output.pptx", SaveFormat.Pptx);

此版本不支持导出为 PDF、HTML、SVG 或图像格式(PNG、JPEG)。


我可以打开 .ppt(旧的 PowerPoint 97-2003)文件吗?

该库主要支持 .pptx(Office Open XML)。Presentation 构造函数接受 .ppt 文件路径并将检测格式,但对二进制 .ppt 文件的可靠解析无法保证,且在此版本中不受支持。所有生产场景请使用 .pptx 文件。


我如何访问幻灯片?

幻灯片是一个从零开始的集合,可通过 prs.Slides 访问:

var firstSlide = prs.Slides[0];
int slideCount = prs.Slides.Count;

我该如何添加第二张幻灯片?

使用 prs.Slides.AddEmptySlide() 并指定布局:

using var prs = new Presentation();
var layout = prs.LayoutSlides[0];
prs.Slides.AddEmptySlide(layout);
var slide2 = prs.Slides[1];
prs.Save("two-slides.pptx", SaveFormat.Pptx);

我如何设置幻灯片的背景颜色?

此版本中不提供背景填充。


我该如何使用 NullableBool

NullableBool 是用于格式化属性的三态枚举。使用 NullableBool.True(而不是 C# 的 true)来表示粗体、斜体等属性:

using Aspose.Slides.Foss;

fmt.FontBold = NullableBool.True;
fmt.FontItalic = NullableBool.False;
fmt.FontUnderline = TextUnderlineType.Single;

为什么设置文本颜色没有效果?

在分配颜色之前,您还必须设置 FillType = FillType.Solid

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;

fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);

我可以使用图表或SmartArt吗?

不。图表、SmartArt、OLE 对象、动画、过渡、超链接、VBA 宏和数字签名在此版本中未实现。


该库支持 .NET 8 吗?

不需要 .NET 9.0 或更高版本。


这个库是线程安全的吗?

每个 Presentation 对象都是独立的。只要不在没有外部锁定的情况下跨线程共享单个 Presentation 对象,从不同线程创建和使用独立的 Presentation 实例是安全的。


如何嵌入图像?

读取图像字节并将其添加到 prs.Images,然后创建一个 PictureFrame:

byte[] imageData = File.ReadAllBytes("logo.png");
var image = prs.Images.AddImage(imageData);
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 50, 50, 200, 150, image);

另请参阅

 中文