Adicionar texto ao PDF em C#

O formato PDF é amplamente utilizado para gerar vários tipos de documentos, como faturas, relatórios financeiros, currículos, etc. No mundo da automação, os documentos PDF são gerados e manipulados a partir da web ou de aplicativos de desktop. Assim, em certos casos, pode ser necessário adicionar texto aos arquivos PDF existentes de forma programática. De acordo com isso, este artigo mostra como adicionar texto a documentos PDF usando C#.

API C# para adicionar texto ao PDF

Para adicionar texto a arquivos PDF dinamicamente, usaremos Aspose.PDF for .NET. É uma API rica em recursos que permite criar e manipular arquivos PDF a partir de seus aplicativos .NET. Você pode baixar a API ou instalá-la usando NuGet.

PM> Install-Package Aspose.PDF

Adicionar texto a um PDF usando C#

A seguir estão as etapas para adicionar texto a um arquivo PDF usando C#.

O exemplo de código a seguir mostra como adicionar texto a um arquivo PDF.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("input.pdf");

// Obter página específica
Page pdfPage = (Page)pdfDocument.Pages[1];

// Criar fragmento de texto
TextFragment textFragment = new TextFragment("main text");
textFragment.Position = new Position(100, 600);

// Definir propriedades de texto
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);

// Criar objeto TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);

// Anexar o fragmento de texto à página PDF
textBuilder.AppendText(textFragment);

// Salve o documento PDF resultante.
pdfDocument.Save("output.pdf");

Adicionar texto ao PDF usando TextParagraph

A seguir estão as etapas para adicionar texto a um arquivo PDF usando TextParagraph.

O exemplo de código a seguir mostra como adicionar texto a um PDF usando a classe TextParagraph.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string fontFile = "font.ttf";

// Carregar arquivo PDF de entrada
Document doc = new Document("input.pdf");

// Criar objeto construtor de texto para a primeira página do documento
TextBuilder textBuilder = new TextBuilder(doc.Pages[1]);

// Criar fragmento de texto com string de amostra
TextFragment textFragment = new TextFragment("Hello world");

if (fontFile != "")
{
    // Carregar a fonte TrueType no objeto de fluxo
    using (FileStream fontStream = File.OpenRead(fontFile))
    {
        // Defina o nome da fonte para a string de texto
        textFragment.TextState.Font = FontRepository.OpenFont(fontStream, FontTypes.TTF);
        
        // Especifique a posição do fragmento de texto
        textFragment.Position = new Position(10, 10);
        
        // Adicione o texto ao TextBuilder para que possa ser colocado sobre o arquivo PDF
        textBuilder.AppendText(textFragment);
    }

    // Salve o documento PDF resultante
    doc.Save("output.pdf");
}

Adicionar texto transparente em PDF em C#

O Aspose.PDF para .NET também permite adicionar texto transparente a um documento PDF, conforme demonstrado nas etapas a seguir.

O exemplo de código a seguir mostra como adicionar texto transparente a um arquivo PDF.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Criar instância de documento
Document doc = new Document("input.pdf");

// Criar coleção de página para página de arquivo PDF
Aspose.Pdf.Page page = doc.Pages.Add();

// Criar objeto de gráfico
Aspose.Pdf.Drawing.Graph canvas = new Aspose.Pdf.Drawing.Graph(100, 400);

// Criar instância de retângulo com determinadas dimensões
Aspose.Pdf.Drawing.Rectangle rect = new Aspose.Pdf.Drawing.Rectangle(100, 100, 400, 400);

// Criar objeto de cor a partir do canal de cores Alpha
rect.GraphInfo.FillColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.FromArgb(128, System.Drawing.Color.FromArgb(12957183)));

// Adicionar retângulo à coleção de formas do objeto Graph
canvas.Shapes.Add(rect);

// Adicionar objeto de gráfico à coleção de parágrafos do objeto de página
page.Paragraphs.Add(canvas);

// Defina o valor para não alterar a posição do objeto gráfico
canvas.IsChangePosition = false;

// Criar instância TextFragment com valor de exemplo
TextFragment text = new TextFragment("transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text ");

// Criar objeto de cor do canal Alpha
Aspose.Pdf.Color color = Aspose.Pdf.Color.FromArgb(30, 0, 255, 0);

// Definir informações de cor para instância de texto
text.TextState.ForegroundColor = color;

// Adicionar texto à coleção de parágrafos da instância da página
page.Paragraphs.Add(text);

// Salve o arquivo PDF atualizado
doc.Save("output.pdf");

Obtenha uma licença gratuita

Você pode usar o Aspose.PDF para .NET sem limitações de avaliação usando uma licença temporária.

Conclusão

Neste artigo, você aprendeu como adicionar texto aos arquivos PDF existentes usando C#. Além disso, você viu como adicionar texto transparente a um PDF dinamicamente. Você pode explorar mais sobre a API C# PDF usando a documentação. Além disso, você pode postar suas dúvidas em nosso fórum.

Veja também