Adicionar marca d'água ao PDF usando C++
Uma marca d’água é uma imagem translúcida que geralmente contém um logotipo ou selo para identificar quem criou o documento ou imagem.
Aspose.PDF for C++ permite adicionar marcas d’água ao seu documento PDF usando a classe Artifact. Por favor, verifique este artigo para resolver sua tarefa.
Uma marca d’água criada com o Adobe Acrobat é chamada de artefato (conforme descrito em 14.8.2.2 Conteúdo Real e Artefatos da especificação PDF). Para trabalhar com artefatos, o Aspose.PDF possui duas classes: Artifact e ArtifactCollection.
Para obter todos os artefatos em uma página específica, a classe Page possui a propriedade Artifacts. Este tópico explica como trabalhar com artefatos em arquivos PDF.
Trabalhando com Artefatos
A classe Artifact contém as seguintes propriedades:
Artifact.Type – obtém o tipo de artefato (suporta valores da enumeração Artifact.ArtifactType onde os valores incluem Background, Layout, Page, Pagination e Undefined). Artifact.Subtype – obtém o subtipo de artefato (suporta os valores da enumeração Artifact.ArtifactSubtype onde os valores incluem Background, Footer, Header, Undefined, Watermark).
Artifact.Contents – Obtém uma coleção de operadores internos de artefato. Seu tipo suportado é System.Collections.ICollection. Artifact.Form – Obtém o XForm de um artefato (se XForm é usado). Artefatos de marcas d’água, cabeçalho e rodapé contêm XForm que mostra todos os conteúdos do artefato.
Artifact.Image – Obtém a imagem de um artefato (se uma imagem estiver presente, caso contrário, nulo).Artifact.Text – Obtém o texto de um artefato.
Artifact.Rectangle – Obtém a posição de um artefato na página.
Artifact.Rotation – Obtém a rotação de um artefato (em graus, valor positivo indica rotação no sentido anti-horário).
Artifact.Opacity – Obtém a opacidade de um artefato. Os valores possíveis estão na faixa de 0…1, onde 1 é completamente opaco.
Exemplos de Programação: Como Adicionar Marca D’Água em Arquivos PDF
O trecho de código a seguir mostra como obter cada marca d’água na primeira página de um arquivo PDF com C++.
void GettingWatermarks() {
String _dataDir("C:\\Samples\\");
String inputFileName("watermark.pdf");
String outputFileName("watermark_out.pdf");
auto document = MakeObject<Document>(_dataDir + inputFileName);
auto artifact = MakeObject<WatermarkArtifact>();
auto textState = MakeObject<TextState>();
textState->set_FontSize(72);
textState->set_ForegroundColor(Color::get_Blue());
textState->set_Font(FontRepository::FindFont(u"Courier"));
artifact->SetTextAndState(u"WATERMARK", textState);
artifact->set_ArtifactHorizontalAlignment (HorizontalAlignment::Center);
artifact->set_ArtifactVerticalAlignment (VerticalAlignment::Center);
artifact->set_Rotation(45);
artifact->set_Opacity(0.5);
artifact->set_IsBackground(true);
document->get_Pages()->idx_get(1)->get_Artifacts()->Add(artifact);
document->Save(_dataDir + outputFileName);
}