Cómo Crear y Estampar Códigos de Barras en Documentos PDF Usando IronBarcode

Cómo estampar códigos de barras en PDF con C

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

Imprime códigos de barras en documentos PDF existentes en C# utilizando el método CreateBarcode de IronBarcode con StampToExistingPdfPage para páginas individuales o StampToExistingPdfPages para múltiples páginas, especificando coordenadas y números de página.

Inicio rápido: Estampar un código de barras generado en una página PDF

Este ejemplo demuestra cómo generar un código de barras usando CreateBarcode de IronBarcode e imprimirlo en una página de PDF existente. Proporcione la ruta del PDF, las coordenadas de posición y el número de página.

  1. Instala IronBarcode con el Administrador de Paquetes NuGet

    PM > Install-Package BarCode
  2. Copie y ejecute este fragmento de código.

    IronBarCode.BarcodeWriter.CreateBarcode("https://my.site", IronBarCode.BarcodeEncoding.QRCode, 150, 150)
        .StampToExistingPdfPage("report.pdf", x: 50, y: 50, pageNumber: 1);
  3. Despliegue para probar en su entorno real

    Comienza a usar IronBarcode en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

StampToExistingPdfPage StampToExistingPdfPages

¿Cómo estampar un código de barras en una página PDF existente?

Aparte de exportar códigos de barras como PDF, IronBarcode permite imprimir el GeneratedBarcode directamente en documentos PDF existentes. Esta función es útil para añadir códigos de seguimiento, etiquetas de inventario o identificadores de documentos a informes, facturas o formularios existentes. El siguiente fragmento de código demuestra esta tarea.

: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

¿Qué parámetros requiere StampToExistingPdfPage?

StampToExistingPdfPage() GeneratedBarcode

El fragmento de código llama al método StampToExistingPdfPage con un objeto StampSettings para imprimir el objeto en el documento PDF. Este método proporciona flexibilidad al tiempo que mantiene la sencillez. A continuación se indican los parámetros del método:

  • pdfFilePath: Un System.String que representa la ruta del documento PDF (relativa o absoluta).
  • x: Un System.Int32 para la posición horizontal en píxeles desde el borde izquierdo.
  • y: Un System.Int32 para la posición vertical en píxeles desde el borde inferior.
  • pageNumber: Un System.Int32 que indica la página (indexado desde 1, la primera página es la 1).
  • password: Un System.String para PDFs protegidos con contraseña (opcional).

¿Cuándo debo utilizar StampToExistingPdfPage?

Ejecutar el fragmento de código imprime el GeneratedBarcode directamente en el documento PDF sin guardado intermedio. Este método se adapta a situaciones que requieren:

StampToExistingPdfPages() GeneratedBarcode

  • Códigos de seguimiento únicos en etiquetas de envío o documentos de entrega
  • Números de lote en informes de fabricación
  • Números de control de documentos en formularios legales o reglamentarios
  • Códigos QR para autenticación digital o enlaces de acceso rápido

El método de estampación directa ahorra tiempo de procesamiento y elimina los archivos temporales. Para obtener información sobre los distintos tipos de códigos de barras, consulte la guía formatos de códigos de barras compatibles.

¿Cómo estampar un código de barras en varias páginas PDF?

A veces es necesario estampar el mismo BarCode en varias páginas. Los usos más comunes incluyen la aplicación de identificadores de documentos a cada página de informes de varias páginas, la adición de códigos de control de versiones a lo largo de documentos técnicos o la inserción de códigos de barras de seguridad en cada página de materiales confidenciales. En lugar de repetir el método de página única, utiliza el método StampToExistingPdfPages de la clase BarcodeStamper. El siguiente fragmento de código demuestra este método.

: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

Para mayor flexibilidad, utilice LINQ para generar rangos de páginas de forma dinámica:

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

¿Qué parámetros acepta StampToExistingPdfPages?

A continuación se indican los parámetros del método:

  • pdfFilePath: Un System.String que representa la ruta del documento PDF.
  • x: Un System.Int32 para la posición horizontal en píxeles.
  • y: Un System.Int32 para la posición vertical en píxeles.
  • pageNumbers: Un IEnumerable de páginas para imprimir (indexado desde 1).
  • password: Un System.String para PDFs protegidos con contraseña (opcional).

StampToExistingPdfPages() StampToExistingPdfPage() GeneratedBarcode

¿Por qué utilizar StampToExistingPdfPages en lugar de Looping?

Este método permite estampar eficazmente códigos de barras en varias páginas sin iteración manual, lo que mejora la legibilidad y el rendimiento del código. La implementación interna optimiza el procesamiento de PDF, lo que resulta en:

  • Ejecución más rápida: El PDF se abre y procesa una vez, no varias
  • Menor uso de memoria: gestión eficiente de recursos para PDF de gran tamaño
  • Código más limpio: Sin gestión manual de bucles y manejo de errores
  • Operaciones atómicas: Todas las páginas estampadas en una sola operación

Técnicas avanzadas de estampación

Personalización del aspecto de los códigos de barras antes de estamparlos

Antes de estampar su código de barras en un PDF, personalice su aspecto. IronBarcode ofrece amplias opciones de personalización:

: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

Trabajar con diferentes tipos de BarCode

Diferentes escenarios requieren diferentes tipos de códigos de barras. Los códigos QR son adecuados para URL y grandes conjuntos de datos, mientras que Code128 funciona para identificadores alfanuméricos. Más información sobre crear códigos QR o explorar otros formatos:

: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

Manejo de errores y buenas prácticas

Implementar un manejo adecuado de errores al trabajar con operaciones de estampado en 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

Consideraciones sobre el rendimiento

Cuando trabaje con PDF de gran tamaño o con varias operaciones de estampado, tenga en cuenta estos consejos:

  1. Operaciones en Lote: Usa StampToExistingPdfPages en lugar de repetir StampToExistingPdfPage
  2. Almacenamiento en Caché de Código de Barras: Crea una vez y reutiliza el objeto GeneratedBarcode
  3. Cálculo de coordenadas: Precalcular coordenadas de posición coherentes
  4. Gestión de memoria: Procese PDF muy grandes por lotes

Para escenarios avanzados que impliquen la lectura de códigos de barras de PDF tras el estampado, consulte nuestra guía sobre lectura de códigos de barras de documentos PDF.

Integración con otras funciones de IronBarcode

La funcionalidad de estampado de PDF funciona a la perfección con otras funciones de IronBarcode. Combínalo con procesamiento asíncrono para mejorar el rendimiento de las aplicaciones 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

Además, aproveche las características de corrección de imágenes de IronBarcode cuando trabaje con PDF escaneados que puedan necesitar mejoras antes o después del estampado del código de barras.

Solución de problemas comunes

Si tiene problemas al estampar códigos de barras en PDF, aquí tiene las soluciones:

  1. Problemas de coordenadas: Las coordenadas del PDF parten de la esquina inferior izquierda, no de la superior izquierda
  2. PDFs protegidos con contraseña: Asegurar el parámetro de contraseña correcto para PDFs encriptados
  3. Grandes tamaños de archivo: Para obtener consejos de optimización y manejo, consulte nuestra guía de solución de problemas
  4. Cuestiones de fuente o codificación: Para caracteres especiales o Unicode, consulta nuestra guía para escribir códigos de barras Unicode

Si se siguen estas directrices y se aprovechan las funciones de estampado de PDF de IronBarcode, se podrá añadir un código de barras eficaz a los documentos PDF existentes, al tiempo que se mantiene un alto rendimiento y la calidad del código.

Preguntas Frecuentes

¿Cómo añado un código de barras a un documento PDF existente en C#?

Utilice el método CreateBarcode de IronBarcode para generar un código de barras y, a continuación, aplique el método StampToExistingPdfPage para colocarlo en su PDF. Simplemente especifique la ruta del archivo PDF, las coordenadas de posición (x, y) y el número de página donde desea que aparezca el código de barras.

¿Qué parámetros son necesarios para el método StampToExistingPdfPage?

El método StampToExistingPdfPage de IronBarcode requiere: pdfFilePath (cadena para la ubicación del PDF), coordenadas x e y (números enteros para el posicionamiento en píxeles), pageNumber (número entero, 1 indexado) y un parámetro de contraseña opcional para PDF protegidos.

¿Puedo estampar el mismo código de barras en varias páginas de un PDF?

Sí, IronBarcode proporciona el método StampToExistingPdfPages (nótese el plural 'Pages') que le permite estampar un único código de barras generado en varias páginas de su documento PDF.

¿Qué sistema de coordenadas se utiliza para colocar los códigos de barras en los PDF?

IronBarcode utiliza un sistema de coordenadas basado en píxeles en el que la coordenada x mide desde el borde izquierdo de la página y la coordenada y mide desde el borde inferior de la página cuando se utiliza el método StampToExistingPdfPage.

¿Cuáles son los casos de uso habituales para estampar códigos de barras en PDF existentes?

La función de sellado de PDF de IronBarcode se utiliza habitualmente para añadir códigos de seguimiento únicos a etiquetas de envío, números de lote en informes de fabricación, números de control de documentos en formularios legales y códigos QR para autenticación digital o enlaces de acceso rápido.

¿Es necesario guardar archivos intermedios para estampar un código de barras en un PDF?

No, el método StampToExistingPdfPage de IronBarcode estampa el código de barras directamente en el documento PDF sin crear archivos temporales, lo que ahorra tiempo de procesamiento y espacio de almacenamiento.

¿Puedo estampar códigos de barras en documentos PDF protegidos por contraseña?

Sí, IronBarcode permite estampar códigos de barras en PDF protegidos por contraseña. Simplemente proporcione la contraseña del PDF como parámetro opcional en el método StampToExistingPdfPage.

¿Cómo puede IronBarcode ayudar a mejorar la eficiencia de los procesos de negocio?

IronBarcode mejora la eficiencia de los procesos de negocio al permitir la generación y lectura rápida y precisa de códigos de barras, reduciendo errores de entrada de datos manuales y mejorando el seguimiento de inventario y activos.

¿Qué habilidades de programación se necesitan para implementar IronBarcode en un proyecto?

El conocimiento básico de programación en C# es suficiente para implementar IronBarcode en un proyecto, ya que proporciona métodos sencillos y documentación completa para guiar a los desarrolladores.

¿Es IronBarcode adecuado para tanto proyectos pequeños como aplicaciones empresariales grandes?

IronBarcode está diseñado para ser escalable y versátil, haciéndolo adecuado para proyectos pequeños, así como para aplicaciones empresariales grandes que requieren soluciones robustas de códigos de barras.

Hairil Hasyimi Bin Omar
Ingeniero de Software
Como todos los grandes ingenieros, Hairil es un ávido aprendiz. Está refinando su conocimiento de C#, Python y Java, usando ese conocimiento para agregar valor a los miembros del equipo en Iron Software. Hairil se unió al equipo de Iron Software desde la Universiti Teknologi MARA en Malasia, donde se ...
Leer más
¿Listo para empezar?
Nuget Descargas 2,317,217 | Versión: 2026.7 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package BarCode
ejecuta una muestra observa cómo tu cadena se convierte en un código de barras.