使用 C# 将条形码添加到 PDF

PDF 是最流行的共享和打印文档格式。许多组织使用 PDF 作为生成报告和共享其他官方文档的标准格式。在某些情况下,我们可能需要将有关文档、产品或公司的特定数据或信息作为条形码图像嵌入 PDF 文档中。我们可以在 .NET 应用程序中以编程方式将机器可读的条形码图像添加到 PDF 文档。在本文中,我们将学习如何使用 C# 在 PDF 文档中添加条形码。

文章应涵盖以下主题:

C# API 将条形码添加到 PDF

要将条形码添加到 PDF 文档,我们将遵循两步过程。首先,我们将使用 Aspose.PDF for .NET API 创建或加载 PDF 文档,然后我们将使用 Aspose.BarCode for .NET API。请下载 API 的 DLL 或使用 NuGet 安装它们。

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

在 C# 中创建 PDF 文档并添加条形码

我们可以按照以下步骤创建一个新的 PDF 文档并将条形码图像添加到 PDF:

  1. 首先,使用 EncodeType 和要编码的文本作为参数创建 BarcodeGenerator 类的实例。
  2. 接下来,创建内存流对象的实例
  3. 然后,调用Save()方法将条码图像保存到内存流中。
  4. 接下来,创建 Document 类的实例。
  5. 然后,将 page 添加到新创建的 PDF 文档中。
  6. 接下来,创建 PdfFileMend 类的实例。
  7. 然后,调用 Document 对象的 BindPdf() 方法来绑定它。
  8. 接下来,使用流对象和图像位置坐标作为参数调用 AddImage() 方法。
  9. 之后,使用 Save() 方法保存 PDF。它将输出 PDF 文件路径作为参数。 10、最后调用Close()方法关闭PdfFileMend对象。

以下代码示例演示了如何使用 C# 创建新的 PDF 文档并添加条形码图像。

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

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

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

// 创建 PDF 文档并向文档添加页面
Document doc = new Document();
doc.Pages.Add();

// 打开文档
PdfFileMend mender = new PdfFileMend();

// 绑定PDF添加条码
mender.BindPdf(doc);

// 在 PDF 文件中添加条形码图像
mender.AddImage(ms, 1, 100, 600, 200, 700);

// 保存更改
mender.Save(dataDir + "AddImage_out.pdf");

// 关闭 PdfFileMend 对象
mender.Close();
在 C# 中创建 PDF 文档并添加条形码。

在 C# 中创建 PDF 文档并添加条形码。

在 C# 中将条码添加到现有 PDF 文档

我们还可以将条形码图像添加到现有 PDF 文档的任何页面。 AddImage() 方法允许在指定坐标处将图像添加到 PDF 文档的指定页面。我们可以按照以下步骤将图像插入到现有的 PDF 文档中:

  1. 首先,使用 EncodeType 和要编码的文本作为参数创建 BarcodeGenerator 类的实例。
  2. 接下来,创建内存流对象的实例
  3. 然后,调用Save()方法将条码图像保存到内存流中。
  4. 接下来,使用 Document 类加载 PDF 文档。
  5. 然后,创建 PdfFileMend 类的实例。
  6. 接下来,使用 Document 对象调用 BindPdf() 方法来绑定它。
  7. 然后,使用流对象、页码和图像位置坐标作为参数调用 AddImage() 方法。
  8. 之后,使用 Save() 方法保存 PDF。它将输出 PDF 文件路径作为参数。
  9. 最后调用Close()方法关闭PdfFileMend对象。

以下代码示例演示如何使用 C# 将条形码图像添加到现有 PDF 文档。

// 此代码示例演示如何将条形码图像添加到现有 PDF。
// 文档目录的路径。
string dataDir = @"D:\Files\BarCode\";

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

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

// 加载 PDF 文档
Document doc = new Document(dataDir + "sample.pdf");

// 打开文档
PdfFileMend mender = new PdfFileMend();

// 绑定PDF添加条码图片
mender.BindPdf(doc);

// 在 PDF 文件中添加条形码图像
mender.AddImage(ms, 1, 70, 0, 200, 600);

// 保存更改
mender.Save(dataDir + "Sample_out.pdf");

// 关闭 PdfFileMend 对象
mender.Close();
在 C# 中将条码添加到现有 PDF 文档。

在 C# 中将条码添加到现有 PDF 文档。

在 C# 中将二维码添加到 PDF 文档

同样,我们也可以按照前面提到的步骤在 PDF 文档中添加二维码。但是,我们只需在第一步中将 EncodeType 设置为 QR。我们可能还需要在步骤 7 中调整图像位置。

以下代码示例演示了如何使用 C# 将 QR 码添加到 PDF 文档。

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

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

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

// 加载 PDF 文档
Document doc = new Document(dataDir + "sample.pdf");

// 打开文档
PdfFileMend mender = new PdfFileMend();

// 绑定PDF添加条码图片
mender.BindPdf(doc);

// 在 PDF 文件中添加 QR 图像
mender.AddImage(ms, 1, 0, 650, 200, 780);

// 保存更改
mender.Save(dataDir + "Sample_QR_out.pdf");

// 关闭 PdfFileMend 对象
mender.Close();
在 C# 中将二维码添加到 PDF 文档。

在 C# 中将二维码添加到 PDF 文档。

使用 C# 从 PDF 文档中读取条形码

我们可以使用 PdfExtractor 类识别嵌入在 PDF 文档任何页面上的任何条形码图像。它允许从 PDF 中提取图像,然后我们将从提取的图像中读取条形码信息。我们可以按照以下步骤从 PDF 文档中读取条形码:

  1. 首先,创建一个 PdfExtractor 类的实例。
  2. 接下来,使用 BindPdf() 方法绑定输入的 PDF 文档。
  3. 然后,设置图像提取的页面范围。
  4. 接下来,调用 ExtractImage() 方法提取图像。
  5. 然后,保存图像以循环播放。
  6. 接下来,使用图像流和 DecodeType 作为参数创建 BarCodeReader 类的实例。
  7. 之后,调用ReadBarCodes()方法获取BarCodeResult对象。
  8. 最后,显示条码信息。

以下代码示例演示了如何使用 C# 从 PDF 文档中读取条形码图像。

// 此代码示例演示如何从 PDF 中读取条形码
// 文档目录的路径。
string dataDir = @"D:\Files\BarCode\sample_out.pdf";

// 绑定pdf文档
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(dataDir);

// 设置图像提取的页面范围
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 1;

// 提取图像
pdfExtractor.ExtractImage();

// 保存图像以循环播放
while (pdfExtractor.HasNextImage())
{
  // 将图像保存到流
  MemoryStream imageStream = new MemoryStream();
  pdfExtractor.GetNextImage(imageStream);
  imageStream.Position = 0;

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

获得免费许可证

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

结论

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

  • 以编程方式创建 PDF 文档;
  • 在 C# 中生成条形码图像并将其添加到 PDF;
  • 使用 C# 从 PDF 文档中提取图像;
  • 从 PDF 文档中读取条形码图像。

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

也可以看看