Como criar e inserir códigos de barras em documentos PDF usando o IronBarcode.

Como Carimbar Códigos de Barras em PDFs Usando C

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

Carimbe códigos de barras em documentos PDF existentes em C# usando o método CreateBarcode do IronBarcode com StampToExistingPdfPage para páginas únicas ou StampToExistingPdfPages para múltiplas páginas, especificando coordenadas e números de página.

Início Rápido: Carimbar um GeneratedBarcode em uma Página PDF

Este exemplo demonstra a geração de um código de barras usando o CreateBarcode do IronBarCode e à sua carimbagem em uma página PDF existente. Forneça o caminho do PDF, coordenadas de posição e número de página.

  1. Instale IronBarcode com o Gerenciador de Pacotes NuGet

    PM > Install-Package BarCode
  2. Copie e execute este trecho de código.

    IronBarCode.BarcodeWriter.CreateBarcode("https://my.site", IronBarCode.BarcodeEncoding.QRCode, 150, 150)
        .StampToExistingPdfPage("report.pdf", x: 50, y: 50, pageNumber: 1);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como posso estampar um código de barras em uma página de PDF existente?

Apart from exporting barcodes as PDF, IronBarcode enables stamping the GeneratedBarcode directly onto existing PDF documents. Este recurso é útil ao adicionar códigos de rastreamento, etiquetas de inventário ou identificadores de documentos a relatórios, faturas ou formulários existentes. O seguinte trecho de código demonstra esta tarefa.

: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");
$vbLabelText   $csharpLabel

Quais parâmetros o StampToExistingPdfPage requer?

O trecho de código chama o método StampToExistingPdfPage() com um objeto GeneratedBarcode para carimbar o objeto no documento PDF. Este método proporciona flexibilidade enquanto mantém a simplicidade. Abaixo estão os parâmetros do método:

  • pdfFilePath: Um System.String representando o caminho do documento PDF (relativo ou absoluto).
  • x: Um System.Int32 para a posição horizontal em pixels a partir da borda esquerda.
  • y: Um System.Int32 para a posição vertical em pixels a partir da borda inferior.
  • pageNumber: Um System.Int32 indicando a página (1-indexado, a primeira página é 1).
  • password: Um System.String para PDFs protegidos por senha (opcional).

Quando devo usar o StampToExistingPdfPage?

Executar o trecho de código carimba o GeneratedBarcode diretamente no documento PDF sem salvamento intermediário. Este método é adequado para cenários que requerem:

  • Códigos de rastreamento únicos em etiquetas de envio ou documentos de entrega
  • Números de lote em relatórios de fabricação
  • Números de controle de documentos em formulários legais ou regulamentares
  • Códigos QR para autenticação digital ou links de acesso rápido

A abordagem de estampa direta economiza tempo de processamento e elimina arquivos temporários. For information on different barcode types, see the supported barcode formats guide.

Como posso estampar um código de barras em várias páginas de PDF?

Às vezes, o mesmo código de barras precisa ser estampado em várias páginas. Usos comuns incluem aplicar identificadores de documentos a cada página de relatórios de várias páginas, adicionar códigos de controle de versão em documentos técnicos ou inserir códigos de barras de segurança em cada página de materiais confidenciais. Em vez de iterar o método de página única, use o método StampToExistingPdfPages() da classe GeneratedBarcode. O seguinte trecho de código demonstra 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");
$vbLabelText   $csharpLabel

Para flexibilidade, use o LINQ para gerar faixas de páginas dinamicamente:

// 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");
$vbLabelText   $csharpLabel

Quais parâmetros o StampToExistingPdfPages aceita?

Abaixo estão os parâmetros do método:

  • pdfFilePath: Um System.String representando o caminho do documento PDF.
  • x: Um System.Int32 para a posição horizontal em pixels.
  • y: Um System.Int32 para a posição vertical em pixels.
  • pageNumbers: Um IEnumerable de páginas para carimbar (1-indexado).
  • password: Um System.String para PDFs protegidos por senha (opcional).

Por que usar o StampToExistingPdfPages ao invés de repetir?

Este método oferece estampagem eficiente de código de barras em várias páginas sem iteração manual, melhorando a legibilidade e desempenho do código. A implementação interna otimiza o processamento de PDF, resultando em:

  • Execução mais rápida: PDF aberto e processado uma vez, não várias vezes
  • Uso de memória reduzido: Gerenciamento eficiente de recursos para PDFs grandes
  • Código mais limpo: Sem loop manual e gerenciamento de tratamento de erros
  • Operações atômicas: Todas as páginas estampadas em uma operação única

Técnicas de estampagem avançadas

Personalizando a aparência do código de barras antes de estampar

Antes de estampar seu código de barras em um PDF, personalize sua aparência. 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);
$vbLabelText   $csharpLabel

Trabalhando com Diferentes Tipos de Código de Barras

Diferentes cenários requerem diferentes tipos de código de barras. Códigos QR são adequados para URLs e grandes conjuntos de dados, enquanto Code128 funciona para identificadores alfanuméricos. 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);
$vbLabelText   $csharpLabel

Tratamento de Erros e Melhores Práticas

Implemente um tratamento de erros adequado ao trabalhar com operações de marcação de 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
}
$vbLabelText   $csharpLabel

Considerações sobre o desempenho

Ao trabalhar com PDFs grandes ou múltiplas operações de marcação, considere estas dicas:

  1. Operações em Lote: Use StampToExistingPdfPages() em vez de iterar StampToExistingPdfPage()
  2. Cache de Código de Barras: Crie uma vez e reutilize o objeto GeneratedBarcode
  3. Cálculo de Coordenadas: Pré-calcule coordenadas de posição consistentes
  4. Gerenciamento de Memória: Processe PDFs muito grandes em lotes

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

Integração com Outros Recursos do IronBarcode

A funcionalidade de marcação de PDF funciona perfeitamente com outros recursos do 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);
    });
}
$vbLabelText   $csharpLabel

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

Solução de problemas comuns

Se encontrar problemas ao marcar códigos de barras em PDFs, aqui estão soluções:

  1. Problemas de Coordenadas: As coordenadas dos PDFs começam no canto inferior esquerdo, não no superior esquerdo
  2. PDFs Protegidos por Senha: Assegure o parâmetro de senha correto para PDFs criptografados
  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

Seguindo estas diretrizes e aproveitando as capacidades de marcação de PDF do IronBarcode, é possível adicionar códigos de barras de forma eficiente a documentos PDF existentes mantendo alta performance e qualidade de código.

Perguntas frequentes

Como adiciono um código de barras a um documento PDF existente em C#?

Use o método CreateBarcode do IronBarcode para gerar um código de barras e, em seguida, aplique o método StampToExistingPdfPage para inseri-lo no seu PDF. Basta especificar o caminho do arquivo PDF, as coordenadas de posição (x, y) e o número da página onde você deseja que o código de barras apareça.

Quais parâmetros são necessários para o método StampToExistingPdfPage?

O método StampToExistingPdfPage do IronBarcode requer: pdfFilePath (string para a localização do PDF), coordenadas x e y (números inteiros para posicionamento em pixels), pageNumber (número inteiro, indexado a partir de 1) e um parâmetro de senha opcional para PDFs protegidos.

Posso usar o mesmo código de barras em várias páginas de um PDF?

Sim, o IronBarcode oferece o método StampToExistingPdfPages (observe o plural 'Pages'), que permite estampar um único código de barras gerado em várias páginas do seu documento PDF.

Qual sistema de coordenadas é usado para posicionar códigos de barras em PDFs?

O IronBarcode utiliza um sistema de coordenadas baseado em pixels, onde a coordenada x é medida a partir da borda esquerda da página e a coordenada y é medida a partir da borda inferior da página ao usar o método StampToExistingPdfPage.

Quais são os casos de uso comuns para a inserção de códigos de barras em PDFs existentes?

O recurso de carimbo em PDF do IronBarcode é comumente usado para adicionar códigos de rastreamento exclusivos a etiquetas de envio, números de lote em relatórios de fabricação, números de controle de documentos em formulários legais e códigos QR para autenticação digital ou links de acesso rápido.

É necessário salvar arquivos intermediários para inserir um código de barras em um PDF?

Não, o método StampToExistingPdfPage do IronBarcode imprime o código de barras diretamente no documento PDF sem criar arquivos temporários, o que economiza tempo de processamento e espaço de armazenamento.

Posso imprimir códigos de barras em documentos PDF protegidos por senha?

Sim, o IronBarcode suporta a impressão de códigos de barras em PDFs protegidos por senha. Basta fornecer a senha do PDF como um parâmetro opcional no método StampToExistingPdfPage.

Hairil Hashimi Bin Omar
Engenheiro de Software
Como todo grande engenheiro, Hairil é um ávido aprendiz. Ele está aprimorando seus conhecimentos em C#, Python e Java, usando esse conhecimento para agregar valor aos membros da equipe da Iron Software. Hairil ingressou na equipe da Iron Software vindo da Universiti Teknologi MARA, na Malásia, onde se formou em ...
Leia mais
Pronto para começar?
Nuget Downloads 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.