Jak tworzyć i umieszczać BarCodes w dokumentach PDF za pomocą IronBarcode

Jak nakładać kody kreskowe na dokumenty PDF za pomocą C

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

Nałożyć kody kreskowe na istniejące dokumenty PDF w C# za pomocą metody CreateBarcode IronBarcode z StampToExistingPdfPage dla pojedynczych stron lub StampToExistingPdfPages dla wielu stron, określając współrzędne i numery stron.

Szybki start: Nałożenie wygenerowanego kodu kreskowego na stronę PDF

Ten przykład pokazuje generowanie kodu kreskowego za pomocą CreateBarcode IronBarCode i nakładanie go na istniejącą stronę PDF. Podaj ścieżkę do pliku PDF, współrzędne pozycji i numer strony.

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode
  2. Skopiuj i uruchom ten fragment kodu.

    IronBarCode.BarcodeWriter.CreateBarcode("https://my.site", IronBarCode.BarcodeEncoding.QRCode, 150, 150)
        .StampToExistingPdfPage("report.pdf", x: 50, y: 50, pageNumber: 1);
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak nałożyć kod kreskowy na istniejącą stronę PDF?

Oprócz eksportowania kodów kreskowych jako PDF, IronBarcode umożliwia nakładanie obiektu GeneratedBarcode bezpośrednio na istniejące dokumenty PDF. Ta funkcja jest przydatna przy dodawaniu kodów śledzenia, etykiet inwentarzowych lub identyfikatorów dokumentów do istniejących raportów, faktur lub formularzy. Poniższy fragment kodu demonstruje to zadanie.

: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

Jakie parametry wymaga StampToExistingPdfPage?

Fragment kodu wywołuje metodę StampToExistingPdfPage() z obiektem GeneratedBarcode do nałożenia obiektu na dokument PDF. Ta metoda zapewnia elastyczność przy zachowaniu prostoty. Poniżej znajdują się parametry metody:

  • pdfFilePath: System.String reprezentujący ścieżkę do dokumentu PDF (względna lub absolutna).
  • x: System.Int32 dla pozycji poziomej w pikselach od lewego brzegu.
  • y: System.Int32 dla pozycji pionowej w pikselach od dolnego brzegu.
  • pageNumber: System.Int32 wskazujący stronę (indeksowany od 1, pierwsza strona to 1).
  • password: System.String dla PDF chronionych hasłem (opcjonalne).

Kiedy użyć StampToExistingPdfPage?

Uruchomienie fragmentu kodu nakłada GeneratedBarcode bezpośrednio do dokumentu PDF bez pośredniego zapisywania. Ta metoda jest odpowiednia w scenariuszach wymagających:

  • Unikalnych kodów śledzenia na etykietach wysyłkowych lub dokumentach dostawy
  • Numerów partii na raportach produkcyjnych
  • Numerów kontrolnych dokumentów na formularzach prawnych lub regulacyjnych
  • Kodów QR dla cyfrowej autoryzacji lub szybkiego dostępu

Bezpośrednie nakładanie oszczędza czas przetwarzania i eliminuje pliki tymczasowe. Aby uzyskać informacje na temat różnych typów kodów kreskowych, zapoznaj się z przewodnikiem obsługiwanych formatów kodów kreskowych.

Jak nałożyć kod kreskowy na wiele stron PDF?

Czasami ten sam kod kreskowy musi być nałożony na wiele stron. Typowe zastosowania obejmują stosowanie identyfikatorów dokumentów na każdej stronie wielostronicowych raportów, dodawanie kodów kontroli wersji w całych dokumentach technicznych lub wstawianie kodów bezpieczeństwa na każdej stronie materiałów poufnych. Zamiast pętli dla metody jednostronicowej, użyj metody StampToExistingPdfPages() z klasy GeneratedBarcode. Poniższy fragment kodu demonstruje tę metodę.

: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

Dla elastyczności, użyj LINQ do dynamicznego generowania zakresów stron:

// 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

Jakie parametry akceptuje StampToExistingPdfPages?

Poniżej znajdują się parametry metody:

  • pdfFilePath: System.String reprezentujący ścieżkę do dokumentu PDF.
  • x: System.Int32 dla pozycji poziomej w pikselach.
  • y: System.Int32 dla pozycji pionowej w pikselach.
  • pageNumbers: IEnumerable stron do nałożenia (indeksowany od 1).
  • password: System.String dla PDF chronionych hasłem (opcjonalne).

Dlaczego używać StampToExistingPdfPages zamiast pętli?

Ta metoda zapewnia efektywne nakładanie kodów kreskowych na wiele stron bez ręcznej iteracji, poprawiając czytelność kodu i wydajność. Wewnętrzna implementacja optymalizuje przetwarzanie PDF, prowadząc do:

  • Szybszego wykonania: PDF otwierany i przetwarzany raz, a nie wielokrotnie
  • Mniejszego zużycia pamięci: Efektywne zarządzanie zasobami dla dużych plików PDF
  • Prostszego kodu: Brak ręcznej obsługi pętli i błędów
  • Operacje atomowe: Wszystkie strony nałożone w jednej operacji

Zaawansowane techniki nakładania

Dostosowanie wyglądu kodu kreskowego przed nałożeniem

Przed nałożeniem swojego kodu kreskowego na PDF, dostosuj jego wygląd. IronBarcode offers extensive customization options:

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.ChangeBarcodeForegroundColor(System.Drawing.Color.DarkBlue);

// Now stamp the customized barcode
myBarcode.StampToExistingPdfPage("invoice.pdf", x: 450, y: 700, pageNumber: 1);
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.ChangeBarcodeForegroundColor(System.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.ChangeBarcodeForegroundColor(System.Drawing.Color.DarkBlue)

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

Praca z różnymi typami kodów kreskowych

Różne scenariusze wymagają różnych typów kodów kreskowych. Kody QR nadają się do URL-i i dużych zbiorów danych, podczas gdy Code128 działa dla alfanumerycznych identyfikatorów. Learn more about creating QR codes or explore other formats:

// 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
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

Obsługa błędów i najlepsze praktyki

Wprowadzić odpowiednią obsługę błędów podczas pracy z operacjami nakładania kodu na PDF:

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
}
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

Rozważania dotyczące wydajności

Podczas pracy z dużymi plikami PDF lub wieloma operacjami nakładania, rozważ te wskazówki:

  1. Operacje wsadowe: Użyj StampToExistingPdfPages() zamiast pętli StampToExistingPdfPage()
  2. Pamięć podręczna kodu kreskowego: Utwórz raz i ponownie użyj obiektu GeneratedBarcode
  3. Obliczanie współrzędnych: Wstępnie obliczyć spójne współrzędne pozycji
  4. Zarządzanie pamięcią: Przetwarzać bardzo duże pliki PDF w partiach

For advanced scenarios involving reading barcodes from PDFs after stamping, see our guide on reading barcodes from PDF documents.

Integracja z innymi funkcjami IronBarcode

Funkcjonalność nakładania PDF działa bezproblemowo z innymi funkcjami IronBarcode. Combine it with asynchronous processing for better web application performance:

// 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

Additionally, leverage IronBarcode's image correction features when working with scanned PDFs that might need enhancement before or after barcode stamping.

Rozwiązywanie typowych problemów

Jeśli napotkasz problemy podczas nakładania kodów kreskowych na PDF, oto rozwiązania:

  1. Problemy z współrzędnymi: Współrzędne PDF zaczynają się od lewego dolnego rogu, nie od lewego górnego
  2. Chronione hasłem PDF: Upewnij się o poprawności parametru hasła dla zaszyfrowanych plików PDF
  3. Large File Sizes: For optimization and handling tips, see our troubleshooting guide
  4. Font or Encoding Issues: For special characters or Unicode, check our writing Unicode barcodes guide

Przestrzeganie tych wytycznych oraz wykorzystanie możliwości nakładania PDF IronBarcode umożliwia efektywne dodawanie kodów kreskowych do istniejących dokumentów PDF przy zachowaniu wysokiej wydajności i jakości kodu.

Często Zadawane Pytania

Jak dodać kod kreskowy do istniejącego dokumentu PDF w C#?

Użyj metody CreateBarcode IronBarcode do wygenerowania kodu kreskowego, a następnie zastosuj metodę StampToExistingPdfPage, aby umieścić go na swoim PDF-ie. Po prostu określ ścieżkę pliku PDF, współrzędne pozycji (x, y) oraz numer strony, na której ma się pojawić kod kreskowy.

Jakie parametry są wymagane dla metody StampToExistingPdfPage?

Metoda StampToExistingPdfPage w IronBarcode wymaga: pdfFilePath (łańcuch dla lokalizacji PDF), współrzędnych x i y (liczby całkowite dla pozycjonowania w pikselach), pageNumber (liczba całkowita, indeks początkowy 1) oraz opcjonalnego parametru hasła dla chronionych PDF-ów.

Czy mogę umieścić ten sam kod kreskowy na wielu stronach PDF?

Tak, IronBarcode udostępnia metodę StampToExistingPdfPages (zwróć uwagę na liczbę mnogą 'Pages'), która pozwala na umieszczenie wygenerowanego kodu kreskowego na kilku stronach w dokumencie PDF.

Jaki system współrzędnych jest używany do pozycjonowania kodów kreskowych na PDF-ach?

IronBarcode używa systemu współrzędnych opartego na pikselach, gdzie współrzędna x jest mierzona od lewej krawędzi strony, a współrzędna y od dolnej krawędzi strony przy użyciu metody StampToExistingPdfPage.

Jakie są typowe zastosowania umieszczania kodów kreskowych na istniejących PDF-ach?

Funkcja umieszczania kodów IronBarcode jest powszechnie używana do dodawania unikalnych kodów śledzących do etykiet wysyłkowych, numerów partii w raportach produkcyjnych, numerów kontrolnych dokumentów w formularzach prawnych oraz kodów QR do cyfrowej autoryzacji lub szybkiego dostępu do linków.

Czy umieszczenie kodu kreskowego na PDF-ie wymaga zapisywania plików pośrednich?

Nie, metoda StampToExistingPdfPage IronBarcode umieszcza kod kreskowy bezpośrednio na dokumencie PDF bez tworzenia plików tymczasowych, co oszczędza czas przetwarzania i przestrzeń dyskową.

Czy mogę umieścić kody kreskowe na dokumentach PDF chronionych hasłem?

Tak, IronBarcode wspiera umieszczanie kodów kreskowych na PDF-ach chronionych hasłem. Wystarczy podać hasło PDF jako opcjonalny parametr w metodzie StampToExistingPdfPage.

Hairil Hasyimi Bin Omar
Inżynier oprogramowania
Jak wszyscy wielcy inżynierowie, Hairil jest zapalonym uczniem. Doskonali swoją wiedzę na temat C#, Pythona i Javy, wykorzystując tę wiedzę, aby dodawać wartości członkom zespołu Iron Software. Hairil dołączył do zespołu Iron Software z Universiti Teknologi MARA w Malezji, gdzie uzyskał tytuł licencjata ...
Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 2,145,441 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package BarCode
uruchom przykład zobacz, jak twoje ciągi zamieniają się w kody kreskowe.