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
- Inserir marca d’água de texto em um arquivo PDF usando C++
- Inserir marca d’água de imagem em um arquivo PDF usando C++
- Remover marca d’água de texto ou imagem de um arquivo 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.
- Carregue o arquivo PDF usando a classe Document.
- Crie uma instância da classe TextStamp com o texto da marca d’água.
- Defina a posição e outras propriedades da marca d’água.
- Adicione a marca d’água à página usando o Document->getPages()->idxget(1)->AddStamp(System::SharedPtr carimbo) método.
- Salve o arquivo PDF usando o método Document->Save(System::String outputFileName, formato SaveFormat).
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);
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.
- Carregue o arquivo PDF usando a classe Document.
- Crie uma instância da classe ImageStamp com a imagem da marca d’água.
- Defina a posição e outras propriedades da marca d’água.
- Adicione a marca d’água à página usando o Document->getPages()->idxget(1)->AddStamp(System::SharedPtr carimbo).
- Salve o arquivo PDF usando o método Document->Save(System::String outputFileName, SaveFormat format).
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);
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.
- Crie uma instância da classe PdfContentEditor.
- Carregue o documento PDF usando o método PdfContentEditor->BindPdf(System::String inputFile).
- Exclua a marca d’água usando o método PdfContentEditor->DeleteStampById(int32t stampId).
- Salve o arquivo PDF usando o método Document->Save(System::String outputFileName, formato SaveFormat).
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.