使用 C# 将二维码添加到 PowerPoint 演示文稿

PowerPoint 是一种流行的工具,用于以幻灯片放映的形式呈现信息。每张幻灯片包含文本、列表、图像、视频、图表等形式的特定信息/数据。在 PowerPoint 演示文稿中,我们可以嵌入任何特定的 URL、演示者的社交媒体帐户链接或使用二维码的电子邮件地址.因此,在智能手机上安装 QR 阅读器的人可以捕获 URL,而无需将其写下来。在本文中,我们将学习如何使用 C# 将二维码添加到 PowerPoint 演示文稿中。

本文将涵盖以下主题:

什么是二维码

(快速响应)二维码是一种矩阵条码,由一系列黑白方格组成。顾名思义,二维码允许用户在扫描时立即访问信息。它用于存储编码的字母数字信息,这些信息可以由数字设备(如手机)上的二维码阅读器解码。

将二维码添加到 PowerPoint 演示文稿的 C# API

为了生成二维码并将其添加到 PPTPPTX 文件,我们将遵循两步过程。首先,我们将使用 Aspose.Slides for .NET API 创建或加载 PowerPoint 演示文稿,然后我们将使用 [Aspose.BarCode for .NET] 生成二维码图像并将其添加到演示幻灯片]4 API。

Aspose.Slides for .NET API 可以在不使用 MS PowerPoint 的情况下读取、写入、保护、修改和转换 .NET 应用程序中支持的格式 的演示文稿。它提供了各种类来执行不同的操作。 API 的 Presentation 类允许在应用程序中创建新的演示文稿或加载现有的演示文稿文件。此类的 Save() 方法将演示文稿以提供的格式保存在给定的文件路径上。 API 的 ISlide 接口表示演示文稿中的幻灯片。

我们将使用 Aspose.BarCode for .NET API 来生成二维码。它允许生成各种支持的条形码类型。为此,它提供了BarcodeGenerator类来生成指定EncodeType的二维码或条形码。我们可以使用该类的 Save() 方法保存生成的二维码/条形码图像。 API 还提供 BarCodeImageFormat 枚举来指定保存格式。我们可以使用 API 的 BarCodeReader 类从图像中读取条形码或二维码。

下载 API 的 DLL 或使用 NuGet 安装它们。

PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.Cells

在 C# 中生成二维码并将其添加到演示文稿

我们可以按照以下步骤创建一个新的演示文稿并将二维码图像添加到演示文稿幻灯片中:

  1. 首先,使用 Presentation 类创建一个空的演示文稿。
  2. 接下来,创建 BarcodeGenerator 类的实例。它将编码类型作为参数。
  3. 然后,添加要编码的文本并设置其他可选的条形码属性。
  4. 接下来,创建内存流对象的实例。
  5. 然后,调用 BarcodeGenerator.Save() 方法将二维码图片保存到内存流中。
  6. 接下来,调用 AddImage() 方法将图像添加到演示文稿的 image 集合中。
  7. 然后,调用 InsertEmptySlide() 方法在指定的索引处插入一个带有标题布局的空幻灯片。
  8. 接下来,通过索引获取新插入的幻灯片。
  9. 之后,使用 AddPictureFrame() 方法在幻灯片上插入二维码图像。
  10. 可选地,设置相框格式,如填充类型、颜色、宽度、旋转等。
  11. 最后,调用 Presentation.Save() 方法。它将输出 PPTX 文件路径和 SaveFormat 作为参数。

以下代码示例演示如何使用 C# 生成 QR 并将其添加到新的演示幻灯片。

// 此代码示例演示如何将 QR 码添加到演示文稿中。
// 文档目录的路径。
string dataDir = @"C:\Files\BarCode\";

// 创建 Presentation 类的实例
Presentation presentation = new Presentation();

// 实例化线性条码对象,设置条码的符号类型
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR);

// 要在 QR 码中编码的文本
generator.CodeText = "https://www.aspose.com";

// 在显示中隐藏文本
generator.Parameters.Barcode.CodeTextParameters.Location = CodeLocation.None;

// 设置 QR 的大小
generator.Parameters.Barcode.XDimension.Pixels = 10;

// 创建内存流并将二维码图像保存到内存流
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// 将图像添加到演示文稿
System.Drawing.Image img = new Bitmap(ms);
IPPImage image = presentation.Images.AddImage(img);

// 在指定索引处插入带有标题布局的空幻灯片
IMasterLayoutSlideCollection layoutSlides = presentation.Masters[0].LayoutSlides;
var layoutSlide = layoutSlides.GetByType(SlideLayoutType.Title);
presentation.Slides.InsertEmptySlide(1, layoutSlide);

// 按索引获取幻灯片
ISlide slide = presentation.Slides[1];

// 添加具有图片等效高度和宽度的相框
IPictureFrame pf = slide.Shapes.AddPictureFrame(Aspose.Slides.ShapeType.Rectangle, 235, 200, image.Width, image.Height, image);

// 对 PictureFrame 应用一些格式
pf.LineFormat.FillFormat.FillType = Aspose.Slides.FillType.Solid;
pf.LineFormat.FillFormat.SolidFillColor.Color = System.Drawing.Color.Blue;
pf.LineFormat.Width = 3;
pf.Rotation = 0;

// 保存演示文稿
presentation.Save(dataDir + "presentation.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
在 C# 中生成二维码并将其添加到演示文稿

在 C# 中生成二维码并将其添加到演示文稿。

将二维码添加到 C# 中的现有演示文稿

我们可以按照以下步骤加载现有演示文稿并添加 QR 码图像:

  1. 首先,使用 Presentation 类加载现有的演示文稿。
  2. 接下来,创建 BarcodeGenerator 类的实例。它将编码类型和文本编码为参数。
  3. 然后,创建内存流对象的实例。
  4. 之后,调用 BarcodeGenerator.Save() 方法将二维码图片保存到内存流中。
  5. 接下来,调用 AddImage() 方法将图像添加到演示文稿的 image 集合中。
  6. 然后,通过索引获取特定幻灯片。
  7. 之后,使用 AddPictureFrame() 方法在幻灯片上插入二维码图像。
  8. 最后,调用 Presentation.Save() 方法。它将输出 PPTX 文件路径和 SaveFormat 作为参数。

以下代码示例演示如何使用 C# 生成 QR 并将其添加到现有演示文稿。

// 此代码示例演示如何将 QR 码添加到现有演示文稿中。
// 文档目录的路径。
string dataDir = @"C:\Files\BarCode\";

// 加载现有演示文稿
Presentation presentation = new Presentation(dataDir + "presentation.pptx");

// 实例化线性条码对象,设置条码的代码文本和符号类型
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "https://www.aspose.com");

// 在显示中隐藏文本
generator.Parameters.Barcode.CodeTextParameters.Location = CodeLocation.None;

// 设置 QR 的大小
generator.Parameters.Barcode.XDimension.Pixels = 10;

// 创建内存流并将二维码图像保存到内存流
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// 将图像添加到幻灯片
System.Drawing.Image img = new Bitmap(ms);
IPPImage image = presentation.Images.AddImage(img);

// 按索引获取幻灯片
ISlide slide = presentation.Slides[0];

// 添加具有图片等效高度和宽度的相框
IPictureFrame pf = slide.Shapes.AddPictureFrame(Aspose.Slides.ShapeType.Rectangle, 235, 100, image.Width, image.Height, image);

// 保存更改
presentation.Save(dataDir + "presentation1.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
将二维码添加到 C# 中的现有演示文稿

将二维码添加到 C# 中的现有演示文稿。

在 C# 中将条码添加到 PowerPoint 演示文稿

同样,我们也可以按照前面提到的步骤生成条形码图像并将其添加到演示文稿中。但是,我们只需要在第二步中设置除 QR 或 GS1QR 之外的 EncodeType。我们可能还需要在步骤 7 中调整图像位置。

下面的代码示例演示如何使用 C# 将条形码添加到 PowerPoint 演示文稿。

// 此代码示例演示如何将条码添加到演示文稿中。
// 文档目录的路径。
string dataDir = @"C:\Files\BarCode\";

// 实例化线性条码对象,设置条码的代码文本和符号类型
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code39Standard, "1234567");

// 创建内存流并将条码图像保存到内存流
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// 创建 Presentation 类的实例
Presentation presentation = new Presentation();

// 按索引获取幻灯片
ISlide slide = presentation.Slides[0];

// 将图像添加到幻灯片
System.Drawing.Image img = new Bitmap(ms);
IPPImage image = presentation.Images.AddImage(img);

// 添加具有图片等效高度和宽度的相框
IPictureFrame pf = slide.Shapes.AddPictureFrame(Aspose.Slides.ShapeType.Rectangle, 200, 100, image.Width, image.Height, image);

// 保存更改
presentation.Save(dataDir + "presentation2.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
在 C# 中将条码添加到 PowerPoint 演示文稿。

在 C# 中将条码添加到 PowerPoint 演示文稿。

从 C# 中的演示文稿中读取 QR 码

我们可以按照以下步骤识别演示文稿中任何幻灯片上可用的任何条形码或二维码图像:

  1. 首先,使用 Presentation 类加载现有的演示文稿。
  2. 接下来,遍历演示文稿图像集中的所有图像。
  3. 然后,将图像保存到流中。
  4. 接下来,使用图像流和 DecodeType 作为参数创建 BarCodeReader 类的实例。
  5. 之后调用ReadBarCodes()方法获取BarCodeResult对象。
  6. 最后,显示二维码信息。

以下代码示例展示了如何使用 C# 从演示文稿中读取 QR 码图像。

// 此代码示例演示如何从演示文稿中读取 QR 码。
// 文档目录的路径。
string dataDir = @"C:\Files\BarCode\";

// 加载演示文稿
Presentation presentation = new Presentation(dataDir + "presentation.pptx");

// 获取演示图像
var images = presentation.Images;

// 循环遍历所有图像
foreach (IPPImage image in images)
{
  var code = image.SystemImage;
  // 将图像保存在内存流中
  MemoryStream imgStream = new MemoryStream();
  code.Save(imgStream, ImageFormat.Bmp);

  // 从上面的图像流中识别条形码
  using (BarCodeReader reader = new BarCodeReader(new Bitmap(imgStream), DecodeType.QR))
  {
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
      Console.WriteLine("Codetext found: " + result.CodeText);
      Console.WriteLine("Symbology: " + result.CodeType);
    }
  }
}
Codetext found: https://www.aspose.com
Symbology: QR

获得免费许可证

您可以获得免费的临时许可证 试用该库而不受评估限制。

结论

在本文中,我们学习了如何:

  • 以编程方式创建 PowerPoint 演示文稿;
  • 在演示文稿中添加一张具有预定义幻灯片布局的新幻灯片;
  • 生成二维码图像并将其添加到演示文稿中;
  • 创建条形码并将其插入演示文稿;
  • 使用 C# 从 PowerPoint 演示文稿中读取 QR 图像。

此外,您可以使用 文档 了解更多关于 Aspose.BarCode for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看