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:
- 首先,使用 EncodeType 和要编码的文本作为参数创建 BarcodeGenerator 类的实例。
- 接下来,创建内存流对象的实例
- 然后,调用Save()方法将条码图像保存到内存流中。
- 接下来,创建 Document 类的实例。
- 然后,将 page 添加到新创建的 PDF 文档中。
- 接下来,创建 PdfFileMend 类的实例。
- 然后,调用 Document 对象的 BindPdf() 方法来绑定它。
- 接下来,使用流对象和图像位置坐标作为参数调用 AddImage() 方法。
- 之后,使用 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 文档
我们还可以将条形码图像添加到现有 PDF 文档的任何页面。 AddImage() 方法允许在指定坐标处将图像添加到 PDF 文档的指定页面。我们可以按照以下步骤将图像插入到现有的 PDF 文档中:
- 首先,使用 EncodeType 和要编码的文本作为参数创建 BarcodeGenerator 类的实例。
- 接下来,创建内存流对象的实例
- 然后,调用Save()方法将条码图像保存到内存流中。
- 接下来,使用 Document 类加载 PDF 文档。
- 然后,创建 PdfFileMend 类的实例。
- 接下来,使用 Document 对象调用 BindPdf() 方法来绑定它。
- 然后,使用流对象、页码和图像位置坐标作为参数调用 AddImage() 方法。
- 之后,使用 Save() 方法保存 PDF。它将输出 PDF 文件路径作为参数。
- 最后调用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 文档
同样,我们也可以按照前面提到的步骤在 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 文档中读取条形码
我们可以使用 PdfExtractor 类识别嵌入在 PDF 文档任何页面上的任何条形码图像。它允许从 PDF 中提取图像,然后我们将从提取的图像中读取条形码信息。我们可以按照以下步骤从 PDF 文档中读取条形码:
- 首先,创建一个 PdfExtractor 类的实例。
- 接下来,使用 BindPdf() 方法绑定输入的 PDF 文档。
- 然后,设置图像提取的页面范围。
- 接下来,调用 ExtractImage() 方法提取图像。
- 然后,保存图像以循环播放。
- 接下来,使用图像流和 DecodeType 作为参数创建 BarCodeReader 类的实例。
- 之后,调用ReadBarCodes()方法获取BarCodeResult对象。
- 最后,显示条码信息。
以下代码示例演示了如何使用 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 的信息。如有任何歧义,请随时在 论坛 上与我们联系。