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
- Adicionar texto a um PDF usando C#
- Adicionar texto ao PDF usando TextParagraph
- Inserir texto transparente em PDF
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#.
- Carregue o arquivo PDF usando a classe Document.
- Obtenha a página desejada do PDF em um objeto Page.
- Crie um objeto TextFragment e defina seu texto, posição, fonte, cor de fundo, etc.
- Crie um objeto TextBuilder e inicialize-o com o objeto Page.
- Use o método TextBuilder.AppendText(TextFragment) para adicionar texto à página do PDF.
- Salve o arquivo PDF atualizado usando o método Document.Save(String).
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.
- Carregue o arquivo PDF usando a classe Document.
- Obtenha a página desejada do PDF em um objeto Page ou adicione um novo.
- Crie um objeto TextBuilder e inicialize-o com o objeto Page.
- Crie um objeto da classe TextParagraph.
- Especifique a localização do parágrafo usando a propriedade TextParagraph.Rectangle.
- Defina as opções de formatação do TextParagraph.
- Crie um objeto TextFragment e defina seu texto, posição, fonte, cor de fundo, etc.
- Adicione o TextFragment ao parágrafo usando o método TextParagraph.AppendLine(TextFragment).
- Adicione parágrafo à página usando o método TextBuilder.AppendParagraph(TextParagraph).
- Salve o arquivo PDF atualizado usando o método Document.Save(String).
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.
- Carregue o arquivo PDF usando a classe Document.
- Obtenha a página desejada do PDF em um objeto Página ou adicione um novo.
- Crie e inicialize um objeto Graph.
- Crie um objeto Rectangle e inicialize-o.
- Defina a propriedade Rectangle.GraphInfo.FillColor.
- Adicione retângulo ao gráfico usando o método Graph.Shapes.Add(Rectangle).
- Adicione Graph à coleção de parágrafos da página usando o método Page.Paragraphs.Add(Graph).
- Crie um objeto TextFragment e defina sua propriedade TextState.ForegroundColor.
- Adicione o TextFragment à página usando o método Page.Paragraphs.Add(TextFragment).
- Salve o arquivo PDF atualizado usando o método Document.Save(String).
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.