Ir para o conteúdo do rodapé
USANDO O IRONPDF

Como adicionar um carimbo PDF em C#

Inserir texto e imagens em um PDF envolve sobrepor conteúdo adicional a um documento PDF existente. Esse conteúdo, frequentemente chamado de "carimbo", pode ser texto, imagens ou uma combinação de ambos. Normalmente, os usuários adicionam informações, rótulos, marcas d'água ou anotações a um PDF usando carimbos.

  1. TextStamper: O TextStamper é a solução ideal para adicionar texto descritivo a PDFs. Seja para aprimorar um documento existente, inserir texto na mesma página ou incorporar detalhes de outros documentos PDF, este carimbo permite personalizar seus arquivos com descrições e informações.
  2. ImageStamper: O ImageStamper é a ferramenta ideal para inserir imagens em seus PDFs. Seja um logotipo para a descrição de um arquivo, uma ilustração para um documento existente ou um elemento visual para a mesma página ou outro documento PDF, este carimbo garante a integração perfeita de imagens.
  3. HtmlStamper: O HtmlStamper leva a personalização a um novo patamar, permitindo que você insira conteúdo HTML em seus PDFs. Isso inclui a criação de elementos dinâmicos, como conteúdo interativo, descrições e especificações de arquivos, proporcionando flexibilidade que vai além da personalização tradicional de PDFs.
  4. BarcodeStamper para carimbar códigos de barras: O BarcodeStamper simplifica o processo de adicionar códigos de barras aos seus PDFs. Seja para fins de rastreamento em um documento assinado, arquivo temporário ou anexo de arquivo, este carimbo garante a integração eficiente de códigos de barras em seus PDFs.
  5. BarcodeStamper para inserir códigos QR: O BarcodeStamper é especializado em inserir códigos QR também em seus PDFs. Ideal para criar conteúdo interativo ou anexos de arquivos, este carimbo permite incorporar códigos QR na mesma página ou em outros documentos PDF, garantindo fácil acesso a informações adicionais.

Essas classes de carimbos especializadas permitem que os usuários aprimorem facilmente documentos PDF com vários elementos, desde texto básico até designs HTML complexos e códigos de barras dinâmicos. Este artigo explorará as funcionalidades de três ferramentas principais de carimbo: Adicionar texto com o TextStamper , Inserir imagens com o ImageStamper e Integrar HTML com o HtmlStamper . O HTMLStamper é particularmente poderoso porque pode utilizar todos os recursos do HTML, juntamente com a estilização CSS, adicionando uma camada extra de versatilidade ao processo de carimbo.

Como inserir texto e imagem em PDFs

  1. Baixe a biblioteca C# para adicionar carimbos de texto e imagens.
  2. Crie e configure a classe de carimbo desejada.
  3. Utilize o método 'ApplyStamp' para aplicar o carimbo ao PDF.
  4. Aplique vários carimbos usando o método 'ApplyMultipleStamps'.
  5. Especifique as páginas específicas onde os carimbos devem ser aplicados.

Configurando e aplicando carimbos de texto em PDFs

Primeiro, crie um objeto da classe TextStamper para permitir a inserção de texto em PDFs. O objeto desta classe contém todas as configurações para especificar como o carimbo de texto é apresentado. Passe o objeto textStamper para o método 'ApplyStamp'. A propriedade Texto define o conteúdo a ser exibido no PDF.

Além disso, é possível especificar a família da fonte, o estilo da fonte, bem como a localização do carimbo. Essa personalização se estende a elementos interativos, descrições de arquivos e conteúdo existente no mesmo PDF ou em outros PDFs. Em seguida, exporte o PDF com o nome de arquivo real.

Após concluir as configurações, exporte o arquivo PDF de saída com o nome de arquivo designado, incluindo todas as configurações e dando um toque profissional aos seus documentos.

using IronPdf;
using IronPdf.Editing;

// Initialize the PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF document from HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create a TextStamper object and configure its properties
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Apply the text stamp to the PDF document
pdf.ApplyStamp(textStamper);

// Save the modified PDF document
pdf.SaveAs("stampText.pdf");
using IronPdf;
using IronPdf.Editing;

// Initialize the PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF document from HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create a TextStamper object and configure its properties
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Apply the text stamp to the PDF document
pdf.ApplyStamp(textStamper);

// Save the modified PDF document
pdf.SaveAs("stampText.pdf");
Imports IronPdf
Imports IronPdf.Editing

' Initialize the PDF renderer
Private renderer As New ChromePdfRenderer()

' Create a PDF document from HTML content
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create a TextStamper object and configure its properties
Private textStamper As New TextStamper() With {
	.Text = "Text Stamper!",
	.FontFamily = "Bungee Spice",
	.UseGoogleFont = True,
	.FontSize = 30,
	.IsBold = True,
	.IsItalic = True,
	.VerticalAlignment = VerticalAlignment.Top
}

' Apply the text stamp to the PDF document
pdf.ApplyStamp(textStamper)

' Save the modified PDF document
pdf.SaveAs("stampText.pdf")
$vbLabelText   $csharpLabel

Configurar e aplicar carimbos de imagem em PDF

Semelhante ao carimbo de texto, crie um objeto da classe ImageStamper e, em seguida, use o método Apply da classe ImageStamper para aplicar a imagem ao documento. O segundo parâmetro deste método também permite a inclusão de um índice de páginas, possibilitando a aplicação do carimbo em uma ou várias páginas. Essa instância específica pode instruir o sistema a aplicar a imagem como um carimbo, particularmente na primeira página do PDF.

Todos os índices de páginas seguem a indexação baseada em zero.

using IronPdf;
using IronPdf.Editing;

// Initialize the PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF document from HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create an ImageStamper object with the image URL
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Apply the image stamp to the first page of the PDF document
pdf.ApplyStamp(imageStamper, 0);

// Save the modified PDF document
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;

// Initialize the PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF document from HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create an ImageStamper object with the image URL
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Apply the image stamp to the first page of the PDF document
pdf.ApplyStamp(imageStamper, 0);

// Save the modified PDF document
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing

' Initialize the PDF renderer
Private renderer As New ChromePdfRenderer()

' Create a PDF document from HTML content
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create an ImageStamper object with the image URL
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}

' Apply the image stamp to the first page of the PDF document
pdf.ApplyStamp(imageStamper, 0)

' Save the modified PDF document
pdf.SaveAs("stampImage.pdf")
$vbLabelText   $csharpLabel

Aplicar vários selos

Para adicionar vários carimbos a um documento, utilize o método de aplicação de múltiplos carimbos no IronPDF , passando um array de carimbos. Permite adicionar vários elementos, como texto, imagens ou rótulos, tudo de uma só vez. Neste exemplo, foram criados dois carimbos de texto com textos e alinhamentos diferentes. O carimbo pdf.ApplyMultipleStamps aplica ambos os carimbos ao PDF, e o documento final é salvo como multipleStamps.pdf. Este método simplifica o processo de adição de vários carimbos, proporcionando uma maneira conveniente de aprimorar seu PDF com múltiplos elementos, seja na mesma página, em outro PDF ou até mesmo em uma página em branco.

using IronPdf;
using IronPdf.Editing;

// Initialize the PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF document from HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create two TextStamper objects with different configurations
TextStamper stamper1 = new TextStamper()
{
    Text = "Text stamp 1",
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Left,
};

TextStamper stamper2 = new TextStamper()
{
    Text = "Text stamp 2",
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Right,
};

// Add the stampers to an array
Stamper[] stampersToApply = { stamper1, stamper2 };

// Apply multiple stamps to the PDF document
pdf.ApplyMultipleStamps(stampersToApply);

// Save the modified PDF document
pdf.SaveAs("multipleStamps.pdf");
using IronPdf;
using IronPdf.Editing;

// Initialize the PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF document from HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create two TextStamper objects with different configurations
TextStamper stamper1 = new TextStamper()
{
    Text = "Text stamp 1",
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Left,
};

TextStamper stamper2 = new TextStamper()
{
    Text = "Text stamp 2",
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Right,
};

// Add the stampers to an array
Stamper[] stampersToApply = { stamper1, stamper2 };

// Apply multiple stamps to the PDF document
pdf.ApplyMultipleStamps(stampersToApply);

// Save the modified PDF document
pdf.SaveAs("multipleStamps.pdf");
Imports IronPdf
Imports IronPdf.Editing

' Initialize the PDF renderer
Private renderer As New ChromePdfRenderer()

' Create a PDF document from HTML content
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create two TextStamper objects with different configurations
Private stamper1 As New TextStamper() With {
	.Text = "Text stamp 1",
	.VerticalAlignment = VerticalAlignment.Top,
	.HorizontalAlignment = HorizontalAlignment.Left
}

Private stamper2 As New TextStamper() With {
	.Text = "Text stamp 2",
	.VerticalAlignment = VerticalAlignment.Top,
	.HorizontalAlignment = HorizontalAlignment.Right
}

' Add the stampers to an array
Private stampersToApply() As Stamper = { stamper1, stamper2 }

' Apply multiple stamps to the PDF document
pdf.ApplyMultipleStamps(stampersToApply)

' Save the modified PDF document
pdf.SaveAs("multipleStamps.pdf")
$vbLabelText   $csharpLabel

Especificar a localização do carimbo em um documento PDF

Para definir a posição do carimbo, utilize uma grade 3x3 com três colunas horizontais e três linhas verticais. Você tem opções de alinhamento horizontal: esquerda, centro e direita, e de alinhamento vertical: superior, meio e inferior. Você pode ajustar os deslocamentos horizontais e verticais para obter maior precisão em cada posição. Consulte a imagem abaixo para uma representação visual desse conceito.

Como adicionar um carimbo PDF em C#, Figura 1: Posicionamento do carimbo PDF Posicionamento do carimbo PDF

  • HorizontalAlignment: O alinhamento horizontal do carimbo em relação à página.
  • VerticalAlignment: O alinhamento vertical do carimbo em relação à página.
  • Deslocamento horizontal: O deslocamento horizontal. O valor padrão é 0 e a unidade padrão é IronPDF. Valores positivos indicam um deslocamento para a direita, enquanto valores negativos indicam um deslocamento para a esquerda.
  • Deslocamento vertical: O deslocamento vertical. O valor padrão é 0 e a unidade padrão é IronPDF. Valores positivos indicam um deslocamento para baixo, enquanto valores negativos indicam um deslocamento para cima.

Para especificar as propriedades HorizontalOffset e VerticalOffset, instancie a classe de comprimento especificado para medição detalhada. A unidade de medida padrão para Length é a porcentagem, mas também pode usar unidades de medida como polegadas, milímetros, centímetros, pixels e pontos.

using IronPdf.Editing;

// Create an ImageStamper object with an image URL
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,

    // Specify offsets for precise positioning
    HorizontalOffset = new Length(10), // 10% offset to the right
    VerticalOffset = new Length(10), // 10% offset downward
};
using IronPdf.Editing;

// Create an ImageStamper object with an image URL
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,

    // Specify offsets for precise positioning
    HorizontalOffset = new Length(10), // 10% offset to the right
    VerticalOffset = new Length(10), // 10% offset downward
};
Imports IronPdf.Editing

' Create an ImageStamper object with an image URL
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {
	.HorizontalAlignment = HorizontalAlignment.Center,
	.VerticalAlignment = VerticalAlignment.Top,
	.HorizontalOffset = New Length(10),
	.VerticalOffset = New Length(10)
}
$vbLabelText   $csharpLabel

Configurando e aplicando carimbos HTML em PDF

Existe outra classe de carimbo que pode ser usada para carimbar tanto texto quanto imagens. A classe HtmlStamper para integração com HTML pode renderizar designs HTML com estilos CSS e incorporá-los ao documento PDF. A propriedade InnerHtmlBaseUrl é usada para especificar a URL base para os recursos de string HTML, como arquivos CSS e de imagem.

A classe HtmlStamper é aplicada ao PDF. Este objeto de carimbo inclui uma imagem e um texto, e você pode defini-los no fragmento HTML que será carimbado no seu PDF. Todas as referências externas a arquivos JavaScript, CSS e de imagem serão relativas à propriedade interna Html. Este código permite personalizar o PDF de acordo com as especificações do arquivo mencionadas no conteúdo HTML. Por fim, o PDF modificado é salvo com o nome de arquivo 'stampHtml.pdf'.

using IronPdf;
using IronPdf.Editing;

// Initialize the PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF document from HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create an HtmlStamper object and configure its properties
HtmlStamper htmlStamper = new HtmlStamper()
{
    Html = @"<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg'>
    <h1>Iron Software</h1>",
    VerticalAlignment = VerticalAlignment.Top,
};

// Apply the HTML stamp to the PDF document
pdf.ApplyStamp(htmlStamper);

// Save the modified PDF document
pdf.SaveAs("stampHtml.pdf");
using IronPdf;
using IronPdf.Editing;

// Initialize the PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF document from HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create an HtmlStamper object and configure its properties
HtmlStamper htmlStamper = new HtmlStamper()
{
    Html = @"<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg'>
    <h1>Iron Software</h1>",
    VerticalAlignment = VerticalAlignment.Top,
};

// Apply the HTML stamp to the PDF document
pdf.ApplyStamp(htmlStamper);

// Save the modified PDF document
pdf.SaveAs("stampHtml.pdf");
Imports IronPdf
Imports IronPdf.Editing

' Initialize the PDF renderer
Private renderer As New ChromePdfRenderer()

' Create a PDF document from HTML content
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create an HtmlStamper object and configure its properties
Private htmlStamper As New HtmlStamper() With {
	.Html = "<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg'>
    <h1>Iron Software</h1>",
	.VerticalAlignment = VerticalAlignment.Top
}

' Apply the HTML stamp to the PDF document
pdf.ApplyStamp(htmlStamper)

' Save the modified PDF document
pdf.SaveAs("stampHtml.pdf")
$vbLabelText   $csharpLabel

Opções do carimbo HTML

Além das opções mencionadas e explicadas acima, seguem abaixo outras disponíveis para as classes de carimbo.

  • Opacidade: Permite que o carimbo seja transparente. 0 é completamente invisível e 100 é totalmente opaco.
  • Rotação: Gira o carimbo no sentido horário de 0 a 360 graus, conforme especificado.
  • MaxWidth: A largura máxima do carimbo de saída.
  • MaxHeight: A altura máxima do carimbo de saída.
  • MinWidth: A largura mínima do carimbo de saída.
  • MinHeight: A altura mínima do carimbo de saída.
  • Hiperlink: Faz com que os elementos estampados deste carimbo tenham um hiperlink ao clicar. Nota: Os links HTML criados pelas tags link(a) não são preservados pela inserção na saída final.
  • Escala: Aplica uma escala percentual aos selos para torná-los maiores ou menores. O valor padrão é 100 (por cento), o que não tem efeito.
  • IsStampBehindContent: Defina como verdadeiro para aplicar o carimbo atrás do conteúdo. Se o conteúdo for opaco, o carimbo poderá ficar invisível.
  • WaitFor: Um recurso prático para aguardar diversos eventos ou algum tempo.
  • Tempo limite: Tempo limite de renderização em segundos. O valor padrão é 60.

As opções de carimbo do IronPDF oferecem personalização avançada, permitindo que os usuários aprimorem PDFs com transparência, rotação precisa e dimensões controladas. Funcionalidades como Hiperlink e Escala facilitam a incorporação de todos os elementos interativos, respeitando as especificações do arquivo e enfatizando apenas o conteúdo. A opção IsStampBehindContent posiciona os carimbos estrategicamente, garantindo que façam parte do mesmo objeto e não dos campos. Ao mesmo tempo, o recurso WaitFor gerencia eventos de renderização de forma eficiente, tornando o IronPDF uma ferramenta versátil para personalização de PDFs, incluindo a rotação da página original.

Conclusão

Em resumo, a funcionalidade Stamper do IronPDF oferece uma solução versátil e fácil de usar para aprimorar documentos PDF. Seja adicionando rótulos de texto simples, incorporando imagens ou aproveitando o poder do HTML e CSS com o HTMLStamper, o IronPDF atende a uma ampla gama de necessidades de personalização.

A facilidade de uso e os exemplos práticos que demonstram a aplicação de carimbos de texto e imagem tornam a ferramenta acessível a usuários com diferentes níveis de conhecimento técnico. As opções de carimbo, incluindo opacidade, rotação e escala, contribuem para um conjunto de ferramentas abrangente para usuários que desejam personalizar PDFs sem esforço. O recurso de carimbo do IronPDF se destaca como uma ferramenta confiável e eficiente, permitindo que os usuários aprimorem seus documentos PDF com facilidade.

Essencialmente, dominar o aprimoramento de PDFs com o IronPDF eleva, sem esforço, os PDFs para necessidades básicas e avançadas, incluindo a extração de textos e imagens incorporados , o manuseio fácil de formulários em PDF , a fusão ou divisão eficiente de arquivos PDF e a formatação programática de PDFs com cabeçalhos e rodapés personalizados . Para dúvidas ou solicitações de novos recursos, a equipe de suporte do IronPDF está pronta para ajudar.

Perguntas frequentes

O que é carimbo PDF e como ele pode ser usado em C#?

A inserção de conteúdo em PDFs envolve a adição de texto, imagens ou HTML a um documento PDF existente. Em C#, você pode usar as classes de inserção do IronPDF, como TextStamper e ImageStamper para aplicar esses elementos de forma eficiente.

Quais classes de carimbo estão disponíveis para personalização de PDF?

O IronPDF oferece diversas classes de carimbo especializadas, incluindo TextStamper para texto, ImageStamper para imagens, HtmlStamper para conteúdo HTML e BarcodeStamper para códigos de barras e códigos QR.

Como faço para adicionar um carimbo de texto a um PDF usando C#?

Para aplicar um carimbo de texto, crie um objeto TextStamper , defina propriedades como o conteúdo do texto e a fonte e, em seguida, aplique-o ao PDF usando o método ApplyStamp .

Posso incorporar conteúdo HTML em um documento PDF?

Sim, usando HtmlStamper do IronPDF, você pode incorporar conteúdo HTML em documentos PDF, permitindo elementos dinâmicos e estilizados.

Como posso controlar a posição de um carimbo em uma página PDF?

O IronPDF permite controlar o posicionamento do carimbo usando um sistema de grade 3x3 para alinhamento e ajustes precisos com deslocamentos horizontais e verticais.

Quais opções estão disponíveis para personalizar carimbos em PDF?

No IronPDF, você pode personalizar carimbos em PDF com opções como opacidade, rotação, escala, hiperlinks e a possibilidade de sobrepor carimbos ao conteúdo existente.

Como faço para aplicar vários tipos de carimbos a um único documento PDF?

Com o IronPDF, utilize o método ApplyMultipleStamps para aplicar diversos tipos de carimbos, como texto e imagens, a um único documento PDF de forma eficiente.

É possível adicionar códigos QR a um PDF?

Sim, você pode usar BarcodeStamper do IronPDF para adicionar códigos QR a PDFs, que podem ser usados para fins interativos e informativos.

Qual o papel da classe abstrata Stamper na marcação de PDFs?

A classe abstrata Stamper no IronPDF é fundamental para a criação de classes de estampagem especializadas, fornecendo funcionalidades comuns para operações de estampagem.

Como posso adicionar carimbos de imagem em um PDF usando C#?

Crie um objeto ImageStamper , configure suas propriedades e use o método ApplyStamp , especificando opcionalmente um índice de página, para inserir imagens em documentos PDF.

O IronPDF é compatível com o .NET 10 para usar as classes PDF Stamper?

Sim, o IronPDF é totalmente compatível com o .NET 10. A biblioteca suporta o .NET 10, bem como versões anteriores, como .NET 9, .NET 8, .NET Core, .NET Standard e .NET Framework. Isso significa que todas as classes de carimbo — incluindo TextStamper , ImageStamper , HtmlStamper e BarcodeStamper — funcionam sem modificações em projetos .NET 10.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim