Jak nakładać kody kreskowe na dokumenty PDF za pomocą C
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.
-
Install IronBarcode with NuGet Package Manager
PM > Install-Package BarCode -
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); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do nakładania kodu kreskowego na PDF
- Utworzyć kod kreskowy z określonym typem i wartością
- Określić rozmiar kodu kreskowego
- Wykorzystać metodę
StampToExistingPdfPagedo nakładania kodu kreskowego na pojedynczą stronę PDF - Użyć metody
StampToExistingPdfPagesdo nakładania kodu kreskowego na wiele stron PDF
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")
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")
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")
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: IEnumerablestron 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)
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)
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
Rozważania dotyczące wydajności
Podczas pracy z dużymi plikami PDF lub wieloma operacjami nakładania, rozważ te wskazówki:
- Operacje wsadowe: Użyj
StampToExistingPdfPages()zamiast pętliStampToExistingPdfPage() - Pamięć podręczna kodu kreskowego: Utwórz raz i ponownie użyj obiektu
GeneratedBarcode - Obliczanie współrzędnych: Wstępnie obliczyć spójne współrzędne pozycji
- 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
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:
- Problemy z współrzędnymi: Współrzędne PDF zaczynają się od lewego dolnego rogu, nie od lewego górnego
- Chronione hasłem PDF: Upewnij się o poprawności parametru hasła dla zaszyfrowanych plików PDF
- Large File Sizes: For optimization and handling tips, see our troubleshooting guide
- 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.

