PDF 是最流行的共享和打印文檔格式。許多組織使用 PDF 作為生成報告和共享其他官方文檔的標準格式。在某些情況下,我們可能需要將有關文檔、產品或公司的特定數據或信息作為條形碼圖像嵌入到 PDF 文檔中。我們可以在 .NET 應用程序中以編程方式將機器可讀的條形碼圖像添加到 PDF 文檔。在本文中,我們將學習如何使用 C# 向 PDF 文檔添加條形碼。
文章應涵蓋以下主題:
將條碼添加到 PDF 的 C# API
要將條形碼添加到 PDF 文檔,我們將遵循兩個步驟。首先,我們將使用 Aspose.PDF for .NET API 創建或加載 PDF 文檔,然後我們將使用 [Aspose.BarCode for .NET][ 生成條碼圖像並將其添加到 PDF 中3] API。請 下載 API 的 DLL 或使用 NuGet 安裝它們。
PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.PDF
在 C# 中創建 PDF 文檔並添加條形碼
我們可以按照下面給出的步驟創建一個新的 PDF 文檔並向 PDF 添加條形碼圖像:
- 首先,使用 EncodeType 和要編碼的文本作為參數創建 BarcodeGenerator 類的實例。
- 接下來,創建內存流對象的實例
- 然後,調用Save()方法將條碼圖像保存到內存流中。
- 接下來,創建 Document 類的實例。
- 然後,在新建的PDF文檔中添加一個page。
- 接下來,創建 PdfFileMend 類的實例。
- 然後,用文檔對象調用 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();
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# 中將 QR 碼添加到 PDF 文檔
同樣,我們也可以按照前面提到的步驟給PDF文檔添加二維碼。但是,我們只需要在第一步中將 EncodeType 設置為 QR。我們可能還需要在步驟 # 7 中調整圖像位置。
下面的代碼示例演示瞭如何使用 C# 將二維碼添加到 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 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。