如何使用IronBarcode在PDF文件中建立及印章條碼

如何在PDF上加蓋條碼使用C

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用IronBarcode的StampToExistingPdfPages對多頁的情況下,在現有的PDF文件中加上條碼,指定坐標和頁碼。

快速入門:將GeneratedBarcode加蓋到PDF頁面

此範例演示如何使用IronBarcode的CreateBarcode生成條碼並將其蓋在現有PDF頁面上。 提供PDF路徑、位置坐標和頁碼。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/BarCode

    PM > Install-Package BarCode
  2. 複製並運行這段程式碼片段。

    IronBarCode.BarcodeWriter.CreateBarcode("https://my.site", IronBarCode.BarcodeEncoding.QRCode, 150, 150)
        .StampToExistingPdfPage("report.pdf", x: 50, y: 50, pageNumber: 1);
  3. 部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronBarcode,透過免費試用

    arrow pointer

StampToExistingPdfPage StampToExistingPdfPages

如何在現有的PDF頁面上加蓋條碼?

除了將條碼匯出為PDF外,IronBarcode還可以將GeneratedBarcode直接蓋在現有的PDF文件上。 此功能在將追蹤編碼、庫存標籤或文件標識符新增到現有報告、發票或表單時非常有用。 以下程式碼片段展示了這項任務。

:path=/static-assets/barcode/content-code-examples/how-to/StampBarcodeOnExistingPdfPage.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.Code128, 200, 100);
myBarcode.StampToExistingPdfPage("pdf_file_path.pdf", x: 200, y: 100, 3, "password");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.Code128, 200, 100)
myBarcode.StampToExistingPdfPage("pdf_file_path.pdf", x:= 200, y:= 100, 3, "password")
$vbLabelText   $csharpLabel

StampToExistingPdfPage需要哪些參數?

StampToExistingPdfPage() GeneratedBarcode

程式碼片段呼叫StampSettings物件將其蓋在PDF文件上。 此方法在保持簡單性的同時提供靈活性。 以下是方法參數:

  • pdfFilePath:一個System.String,表示PDF文件路徑(相對或絕對)。
  • x:一個System.Int32,表示從左邊緣開始的水平位置像素。
  • y:一個System.Int32,表示從底邊緣開始的垂直位置像素。
  • pageNumber:一個System.Int32,用來指示頁碼(1起算,第一頁為1)。
  • password:用於密碼保護PDF的System.String(可選)。

何時應使用StampToExistingPdfPage?

執行程式碼片段會直接將GeneratedBarcode蓋入PDF文件中,而無需中間儲存。 此方法適用於以下情境:

StampToExistingPdfPages() GeneratedBarcode

  • 運送標籤或交付文件上的唯一追蹤編碼
  • 製造報告上的批號
  • 法律或監管表單上的文件控制號碼
  • 用於數位驗證或快速存取連結的QR碼

直接加蓋的方法節省了處理時間,並消除臨時文件。 有關不同條碼型別的資訊,請參閱支持的條碼格式指南。

如何在多個PDF頁面上加蓋條碼?

有時需要在多個頁面上蓋上相同的條碼。 常見用法包括將文件標識符應用於多頁報告的每個頁面,在技術文件中新增版本控制編碼,或在機密材料的每個頁面上插入安全條碼。 與其迴圈單頁方法,使用BarcodeStamper類。 以下程式碼片段演示此方法。

:path=/static-assets/barcode/content-code-examples/how-to/StampBarcodeOnMultiplePdfPages.cs
using IronBarCode;
using System.Collections.Generic;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.Code128, 200, 100);
List<int> pages = new List<int>();
pages.Add(1);
pages.Add(2);
pages.Add(3);
myBarcode.StampToExistingPdfPages("pdf_file_path.pdf", x: 200, y: 100, pages, "password");
Imports IronBarCode
Imports System.Collections.Generic

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.Code128, 200, 100)
Private pages As New List(Of Integer)()
pages.Add(1)
pages.Add(2)
pages.Add(3)
myBarcode.StampToExistingPdfPages("pdf_file_path.pdf", x:= 200, y:= 100, pages, "password")
$vbLabelText   $csharpLabel

為了靈活性,使用LINQ來動態生成頁面範圍:

// Stamp on all even pages from 2 to 10
var evenPages = Enumerable.Range(1, 10).Where(x => x % 2 == 0).ToList();
myBarcode.StampToExistingPdfPages("pdf_file_path.pdf", x: 200, y: 100, evenPages, "password");

// Stamp on the first and last 3 pages of a 20-page document
var selectedPages = new List<int> { 1, 2, 3, 18, 19, 20 };
myBarcode.StampToExistingPdfPages("pdf_file_path.pdf", x: 200, y: 100, selectedPages, "password");
// Stamp on all even pages from 2 to 10
var evenPages = Enumerable.Range(1, 10).Where(x => x % 2 == 0).ToList();
myBarcode.StampToExistingPdfPages("pdf_file_path.pdf", x: 200, y: 100, evenPages, "password");

// Stamp on the first and last 3 pages of a 20-page document
var selectedPages = new List<int> { 1, 2, 3, 18, 19, 20 };
myBarcode.StampToExistingPdfPages("pdf_file_path.pdf", x: 200, y: 100, selectedPages, "password");
Imports System.Linq

' Stamp on all even pages from 2 to 10
Dim evenPages = Enumerable.Range(1, 10).Where(Function(x) x Mod 2 = 0).ToList()
myBarcode.StampToExistingPdfPages("pdf_file_path.pdf", x:=200, y:=100, evenPages, "password")

' Stamp on the first and last 3 pages of a 20-page document
Dim selectedPages = New List(Of Integer) From {1, 2, 3, 18, 19, 20}
myBarcode.StampToExistingPdfPages("pdf_file_path.pdf", x:=200, y:=100, selectedPages, "password")
$vbLabelText   $csharpLabel

StampToExistingPdfPages接受哪些參數?

以下是方法參數:

  • pdfFilePath:一個System.String,表示PDF文件路徑。
  • x:一個System.Int32,表示水平方向位置像素。
  • y:一個System.Int32,表示垂直方向位置像素。
  • pageNumbers:一個IEnumerable,表示要加蓋的頁面(1起始)。
  • password:用於密碼保護PDF的System.String(可選)。

StampToExistingPdfPages() StampToExistingPdfPage() GeneratedBarcode

為什麼使用StampToExistingPdfPages而非迴圈?

此方法提供了更高效的多頁條碼加蓋,無需手動迴圈,提高程式碼的可讀性和性能。 內部實現優化了PDF處理,導致以下結果:

  • 更快的執行:PDF打開並處理一次,而不是多次
  • 更低的記憶體使用:對於大型PDF進行高效的資源管理
  • 更清晰的程式碼:無需手動迴圈和錯誤處理管理
  • 原子操作:在單次操作中加蓋所有頁面

進階加蓋技術

在加蓋前自訂條碼的外觀

在將您的條碼加蓋到PDF上之前,請自訂其外觀。 IronBarcode提供豐富的自訂選項

:path=/static-assets/barcode/content-code-examples/how-to/create-and-stamp-barcode-pdf-5.cs
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("INVOICE-2024-001", BarcodeEncoding.Code128, 250, 80);

// Customize the appearance
myBarcode.AddAnnotationTextAboveBarcode("Invoice Number");
myBarcode.AddAnnotationTextBelowBarcode("Scan for digital copy");
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);

// Now stamp the customized barcode
myBarcode.StampToExistingPdfPage("invoice.pdf", x: 450, y: 700, pageNumber: 1);
Dim myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("INVOICE-2024-001", BarcodeEncoding.Code128, 250, 80)

' Customize the appearance
myBarcode.AddAnnotationTextAboveBarcode("Invoice Number")
myBarcode.AddAnnotationTextBelowBarcode("Scan for digital copy")
myBarcode.SetMargins(10)
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue)

' Now stamp the customized barcode
myBarcode.StampToExistingPdfPage("invoice.pdf", x:=450, y:=700, pageNumber:=1)
$vbLabelText   $csharpLabel

使用不同的條碼型別

不同的情境需要不同的條碼型別。QR碼適用於URL和大型資料集,而Code128適用於字母數字標識符。 了解更多關於建立QR碼或探索其他格式:

:path=/static-assets/barcode/content-code-examples/how-to/create-and-stamp-barcode-pdf-6.cs
// QR Code for contact information
var qrCode = BarcodeWriter.CreateBarcode("BEGIN:VCARD\nFN:John Doe\nTEL:555-1234\nEND:VCARD", 
    BarcodeEncoding.QRCode, 150, 150);
qrCode.StampToExistingPdfPage("businesscard.pdf", x: 400, y: 50, pageNumber: 1);

// Data Matrix for product tracking
var dataMatrix = BarcodeWriter.CreateBarcode("PROD-2024-BATCH-789", 
    BarcodeEncoding.DataMatrix, 100, 100);
dataMatrix.StampToExistingPdfPage("product_sheet.pdf", x: 50, y: 750, pageNumber: 1);
' QR Code for contact information
Dim qrCode = BarcodeWriter.CreateBarcode("BEGIN:VCARD" & vbLf & "FN:John Doe" & vbLf & "TEL:555-1234" & vbLf & "END:VCARD", 
    BarcodeEncoding.QRCode, 150, 150)
qrCode.StampToExistingPdfPage("businesscard.pdf", x:=400, y:=50, pageNumber:=1)

' Data Matrix for product tracking
Dim dataMatrix = BarcodeWriter.CreateBarcode("PROD-2024-BATCH-789", 
    BarcodeEncoding.DataMatrix, 100, 100)
dataMatrix.StampToExistingPdfPage("product_sheet.pdf", x:=50, y:=750, pageNumber:=1)
$vbLabelText   $csharpLabel

錯誤處理和最佳實踐

在處理PDF加蓋操作時,請實施適當的錯誤處理:

:path=/static-assets/barcode/content-code-examples/how-to/create-and-stamp-barcode-pdf-7.cs
try
{
    GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("DOCUMENT-ID-12345", 
        BarcodeEncoding.Code128, 200, 60);
    
    // Verify the PDF exists before attempting to stamp
    if (File.Exists("target.pdf"))
    {
        myBarcode.StampToExistingPdfPage("target.pdf", x: 100, y: 100, pageNumber: 1);
        Console.WriteLine("Barcode stamped successfully!");
    }
    else
    {
        Console.WriteLine("PDF file not found!");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error stamping barcode: {ex.Message}");
    // Log the error or handle it appropriately
}
Imports System
Imports System.IO

Try
    Dim myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("DOCUMENT-ID-12345", BarcodeEncoding.Code128, 200, 60)

    ' Verify the PDF exists before attempting to stamp
    If File.Exists("target.pdf") Then
        myBarcode.StampToExistingPdfPage("target.pdf", x:=100, y:=100, pageNumber:=1)
        Console.WriteLine("Barcode stamped successfully!")
    Else
        Console.WriteLine("PDF file not found!")
    End If
Catch ex As Exception
    Console.WriteLine($"Error stamping barcode: {ex.Message}")
    ' Log the error or handle it appropriately
End Try
$vbLabelText   $csharpLabel

性能考量

在處理大型PDF或多次加蓋操作時,請考慮以下提示:

  1. 批量操作:使用StampToExistingPdfPage
  2. 條碼快取:建立一次並重用GeneratedBarcode物件
  3. 坐標計算:預先計算一致的位置坐標
  4. 記憶體管理:批量處理超大PDF

如需進階情境,例如在加蓋後從PDF中讀取條碼,請參見我們的從PDF文件中讀取條碼的指南。

與其他IronBarcode功能整合

PDF加蓋功能可以與IronBarcode的其他功能無縫結合使用。 將其與異步處理相結合,以提高Web應用程式性能:

// Asynchronous PDF stamping
public async Task StampBarcodeAsync(string pdfPath, string barcodeData)
{
    await Task.Run(() =>
    {
        var barcode = BarcodeWriter.CreateBarcode(barcodeData, BarcodeEncoding.QRCode, 200, 200);
        barcode.StampToExistingPdfPage(pdfPath, x: 100, y: 100, pageNumber: 1);
    });
}
// Asynchronous PDF stamping
public async Task StampBarcodeAsync(string pdfPath, string barcodeData)
{
    await Task.Run(() =>
    {
        var barcode = BarcodeWriter.CreateBarcode(barcodeData, BarcodeEncoding.QRCode, 200, 200);
        barcode.StampToExistingPdfPage(pdfPath, x: 100, y: 100, pageNumber: 1);
    });
}
Imports System.Threading.Tasks

' Asynchronous PDF stamping
Public Async Function StampBarcodeAsync(pdfPath As String, barcodeData As String) As Task
    Await Task.Run(Sub()
                       Dim barcode = BarcodeWriter.CreateBarcode(barcodeData, BarcodeEncoding.QRCode, 200, 200)
                       barcode.StampToExistingPdfPage(pdfPath, x:=100, y:=100, pageNumber:=1)
                   End Sub)
End Function
$vbLabelText   $csharpLabel

此外,在處理可能需要在條碼加蓋前或之後增強的掃描PDF時,利用IronBarcode的圖像校正功能

常見問題故障排除

如果在PDF上加蓋條碼時遇到問題,以下是解決方案:

  1. 坐標問題:PDF坐標從左下角開始,而不是左上角
  2. 密碼保護PDF:確保加密的PDF使用正確的密碼參數
  3. 大文件大小:如需優化和處理提示,請參考我們的故障排除指南
  4. 字體或編碼問題:如涉及特殊字元或Unicode,請查看我們的書寫Unicode條碼指南

遵循這些指南並利用IronBarcode的PDF加蓋功能,可以有效地將條碼新增到現有的PDF文件中,同時保持高性能和程式碼質量。

常見問題

如何在C#中將條碼新增到現有的PDF文件中?

使用IronBarcode的CreateBarcode方法生成條碼,然後應用StampToExistingPdfPage方法將其置於PDF上。只需指定PDF文件路徑、定位座標(x, y)和您希望條碼出現的頁碼即可。

StampToExistingPdfPage方法需要哪些參數?

IronBarcode的StampToExistingPdfPage方法需要:pdfFilePath(PDF位置的字串),x和y座標(定位的整數,以像素為單位),pageNumber(整數,從1開始編號),以及用於受保護PDF的可選密碼參數。

我可以在PDF的多個頁面上印章同一條碼嗎?

可以,IronBarcode提供StampToExistingPdfPages方法(注意到復數“Pages”),允許您在PDF文件的多個頁面上印章單一生成的條碼。

PDF上指定條碼位置時使用的座標系統是什麼?

IronBarcode使用像素為基礎的座標系統,其中x座標從頁面左邊緣開始測量,而y座標在使用StampToExistingPdfPage方法時從頁面底部開始測量。

在現有PDF上印章條碼的常見應用場景是什麼?

IronBarcode的PDF印章功能通常用於在運送標籤上新增唯一的追蹤碼,製造報告上的批次號碼,法律文件上的文件控制號碼,以及數位認證或快速存取連結的QR碼。

在PDF上印章條碼是否需要保存中間文件?

不需要,IronBarcode的StampToExistingPdfPage方法直接在PDF文件上印章條碼而不建立臨時文件,這樣可以節省處理時間和儲存空間。

我可以在有密碼保護的PDF文件上印章條碼嗎?

可以,IronBarcode支持在有密碼保護的PDF上印章條碼。只需在StampToExistingPdfPage方法中提供PDF密碼作為可選參數。

IronBarcode如何幫助改善業務流程效率?

IronBarcode通過使條碼生成和讀取快速且準確來提高業務流程效率,減少手動資料輸入錯誤,並改善庫存和資產追蹤。

將IronBarcode實現於專案中需要什麼程式設計技能?

基本的C#程式設計知識足以將IronBarcode實現於專案中,因為它提供了簡單的方法和全面的文件來指導開發者。

IronBarcode適合於小型專案和大型企業應用嗎?

IronBarcode設計為可擴展且多功能,使其適合小型專案和需要強大條碼解決方案的大型企業應用。

Hairil Hasyimi Bin Omar
軟體工程師
和所有偉大的工程師一樣,Hairil是一位充滿熱情的學習者。他正在完善自己對C#、Python和Java的知識,並利用這些知識為Iron Software的團隊成員創造價值。Hairil從馬來西亞的瑪拉工藝大學畢業,擁有化學與流程工程學士學位,後加入Iron Software團隊。
準備好開始了嗎?
Nuget 下載 2,317,217 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想快速驗證嗎? PM > Install-Package BarCode
運行範例觀看您的字串成為條碼。