Uma marca d’água em um documento identifica o estado do documento com textos como confidencial, rascunho, etc., e dificulta a cópia do documento original. As marcas d’água podem ser baseadas em imagem ou texto e são frequentemente usadas em documentos PDF. Pode ser necessário adicionar marcas d’água a documentos PDF em seus aplicativos C++. Para isso, este artigo ensinará como adicionar e remover marcas d’água de texto e imagem de documentos PDF usando C++.

API C++ para inserir e excluir marcas d’água de texto/imagem

Aspose.PDF for C++ é uma biblioteca C++ que permite criar, ler e atualizar documentos PDF. Além disso, a API suporta a inserção e exclusão de marcas d’água de imagem/texto em documentos PDF. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção downloads.

PM> Install-Package Aspose.PDF.Cpp

Inserir marca d’água de texto em um arquivo PDF usando C++

Com Aspose.PDF for C++ API, você pode controlar o estilo da fonte, texto, cor, ângulo, opacidade, etc. da marca d’água do texto. A seguir estão as etapas para adicionar uma marca d’água de texto em um arquivo PDF.

O código de exemplo a seguir mostra como adicionar uma marca d’água de texto em um arquivo PDF usando C++.

// Abra o documento PDF de origem
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Crie uma instância da classe TextStamp
System::SharedPtr<TextStamp> textStamp = MakeObject<TextStamp>(u"CONFIDENTIAL");

// Definir a posição da marca d'água
textStamp->set_XIndent(70);
textStamp->set_YIndent(300);

// Definir propriedades de texto
textStamp->get_TextState()->set_Font(FontRepository::FindFont(u"Arial"));
textStamp->get_TextState()->set_FontSize(72.0F);
textStamp->get_TextState()->set_ForegroundColor(Aspose::Pdf::Color::get_Red());
textStamp->set_Opacity(0.4);
textStamp->set_RotateAngle(45);
textStamp->setStampId(123456);

// Adicionar marca d'água à página PDF
pdfDocument->get_Pages()->idx_get(1)->AddStamp(textStamp);

// Salve o arquivo PDF
pdfDocument->Save(u"OutputDirectory\\Text-Watermark-Out.pdf", SaveFormat::Pdf);
Imagem do arquivo PDF de saída gerado pelo código de amostra

Imagem do arquivo PDF de saída gerado pelo código de amostra

Inserir marca d’água de imagem em um arquivo PDF usando C++

As marcas d’água de imagem geralmente são usadas para mostrar a propriedade do documento usando o logotipo ou qualquer outra imagem identificável. Você pode adicionar uma marca d’água de imagem a arquivos PDF usando as etapas abaixo.

O código de exemplo a seguir demonstra como adicionar uma marca d’água de imagem em um arquivo PDF usando C++.

// Abra o documento PDF de origem
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Crie uma instância da classe ImageStamp
System::SharedPtr<ImageStamp> imageStamp = MakeObject<ImageStamp>(u"SourceDirectory\\aspose.png");

// Definir a posição da marca d'água
imageStamp->set_XIndent(150);
imageStamp->set_YIndent(350);

// Definir outras propriedades
imageStamp->set_Height(100);
imageStamp->set_Width(300);
imageStamp->set_RotateAngle(45);
imageStamp->set_Opacity(0.4);
imageStamp->setStampId(12345678);

// Adicionar marca d'água à página PDF
pdfDocument->get_Pages()->idx_get(1)->AddStamp(imageStamp);

// Salve o arquivo PDF
pdfDocument->Save(u"OutputDirectory\\Image-Watermark-Out.pdf", SaveFormat::Pdf);
Imagem do arquivo PDF de saída gerado pelo código de amostra

Imagem do arquivo PDF de saída gerado pelo código de amostra

Remover marca d’água de texto ou imagem de um arquivo PDF usando C++

Pode haver cenários em que você precise remover marcas d’água de um documento PDF. Nos exemplos anteriores, definimos ids para marcas d’água de texto e imagem. Usaremos esses ids para remover as marcas d’água dos documentos PDF. A seguir estão as etapas para remover marcas d’água de arquivos PDF.

O código de exemplo a seguir mostra como remover marcas d’água de texto e imagem de arquivos PDF usando C++.

// Crie uma instância da classe PdfContentEditor
System::SharedPtr<PdfContentEditor> contentEditor = MakeObject<PdfContentEditor>();

// Abra o arquivo PDF que contém a marca d'água
contentEditor->BindPdf(u"SourceDirectory\\SampleImageWatermark.pdf");

// Excluir marca d'água por id
contentEditor->DeleteStampById(12345678);

// Salve o arquivo PDF
pdfDocument->Save(u"OutputDirectory\\Remove-Watermark-Out.pdf", SaveFormat::Pdf);

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como trabalhar com marcas d’água em arquivos PDF usando C++. Especificamente, você aprendeu como adicionar e remover marcas d’água de imagem e texto de documentos PDF usando a API Aspose.PDF para C++. A API fornece muitos recursos adicionais para automatizar suas tarefas relacionadas a PDF. Você pode explorar a API em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também