
Uma marca d’água é um texto ou uma imagem que aparece na frente ou atrás do conteúdo do documento existente, como um carimbo. Por exemplo, você pode aplicar uma marca d’água “Confidencial” a páginas com informações confidenciais. As marcas d’água podem ser usadas para proteger informações confidenciais e indicar a validade de um documento legal. Você também pode colocar uma marca d’água em qualquer nota de papel, onde elas ajudam a evitar falsificações. Neste artigo, discutiremos os recursos relacionados à marca d’água em documentos PDF.
- API REST de manipulação de PDF
- Adicionar marca d’água de texto em PDF usando API REST
- Como adicionar marca d’água de imagem em PDF usando Java
- Adicionar página PDF como carimbo de marca d’água
- Adicionar número de página como marca d’água
API REST de manipulação de PDF
Aspose.PDF Cloud é nossa premiada API REST que oferece os recursos para criar, manipular e renderizar arquivos PDF para outros formatos suportados, incluindo DOCX, PPTX, XLSX, XPS, SVG, JPEG, etc. Agora vamos falar sobre Aspose.PDF Cloud SDK para Java, que é um wrapper Java em torno da API Aspose.PDF Cloud. Ele fornece todos os recursos da API REST da nuvem, incluindo os recursos para adicionar marca d’água ao PDF usando a linguagem de programação Java.
Para usar o Java Cloud SDK, o primeiro passo é instalar o Aspose.PDF Cloud SDK para Java. O Cloud SDK está disponível para download em Maven | GitHub. Abaixo estão os detalhes sobre como baixar e usar o Aspose.Pdf.jar no projeto de construção do Maven.
Adicione as seguintes dependências no seu arquivo pom.xml.
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf-cloud</artifactId>
<version>21.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Adicionar marca d’água de texto em PDF usando API REST
Para usar as APIs do Cloud, você precisa primeiro registrar uma conta no painel do Aspose.Cloud onde você verá seus detalhes personalizados de Client ID e Client Secret. Eles são essenciais ao acessar as APIs. Abaixo estão os detalhes sobre como adicionar marca d’água de texto a um documento PDF existente usando Java
- Primeiro, você precisa especificar os detalhes do seu ID do cliente e do seu segredo do cliente em relação a duas variáveis.
- Em segundo lugar, crie um objeto da classe PdfApi fornecendo o ID do cliente e o segredo do cliente como argumentos.
- Terceiro, crie um objeto da classe TextState onde especificamos o nome da fonte como Arial e o tamanho da fonte como 14.
- Agora precisamos criar uma instância da classe TextStamp. Ao usar este objeto, especificaremos HorizontalAlignment como um centro, o valor do carimbo de texto, o tamanho da fonte e os detalhes do tipo de fonte são especificados usando o método textState(..) onde o objeto TextState criado na etapa acima é passado como um argumento. Os detalhes da margem e VerticalAlignment também são especificados como Center.
- Para exibir o TextStamp em segundo plano, o método background(..) é usado com um argumento true.
- Além disso, a opacidade, rotateAngle, fator de zoom e recuo XY do carimbo também são especificados.
- Agora crie um objeto da classe List com o tipo TextStamp e adicione o objeto stamp criado acima a esta lista.
- Por fim, chame o método postPageTextStamps(..) do PdfAPi e passe o PDF de entrada, o número da página e a lista de carimbos como um argumento para iniciar o processo de carimbo.
// Para exemplos completos e código-fonte, visite https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
String sourceFileName = "PdfWithTable.pdf";
int pageNumber = 1;
String cloudStorage = "";
String folder = "";
// crie uma instância de PdfApi usando detalhes do ID do cliente e do segredo do cliente
com.aspose.asposecloudpdf.api.PdfApi pdfApi = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientId);
// crie um objeto de TextState e especifique detalhes de formatação de fonte
com.aspose.asposecloudpdf.model.TextState textState = new com.aspose.asposecloudpdf.model.TextState().fontSize(24.).font("Arial");
com.aspose.asposecloudpdf.model.TextStamp stamp = new com.aspose.asposecloudpdf.model.TextStamp()
.textAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.value("Text Stamp")
.textState(textState)
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(4.)
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
stamp.background(true)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.ON90)
.rotateAngle(45.)
.xindent(0.)
.yindent(0.)
.zoom(1.);
// crie um objeto List com o tipo TextStamp
List<com.aspose.asposecloudpdf.model.TextStamp> stamps = new ArrayList<>();
// adicionar instância TextStamp à lista de TextStamps
stamps.add(stamp);
// chamar método para postTextStamp na primeira página do arquivo PDF
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);

Imagem 1:- Carimbo de texto adicionado ao documento PDF.
Os arquivos de amostra usados no exemplo acima podem ser baixados dos seguintes links:
Como adicionar marca d’água de imagem em PDF usando Java
Com menos linhas de código, a marca d’água de imagem pode ser facilmente adicionada a um documento PDF. Abaixo estão as etapas sobre como você pode adicionar uma imagem JPEG a um arquivo PDF.
- O primeiro passo é criar um objeto PdfApi passando ClientSecret e ClientID como argumentos.
- O próximo passo é criar o objeto ImageStamp onde definimos o arquivo de imagem a ser carimbado, detalhes de margem e VerticalAlignment. No nosso caso, selecionamos o valor Center da enumeração VerticalAlignment.
- Defina ImageStamp.background(True) para que a imagem apareça atrás do conteúdo sobre a página. Caso contrário, ela aparecerá no topo do conteúdo da página.
- Crie um objeto List do tipo ImageStamp e adicione o objeto ImageStamp criado na segunda etapa a esta coleção.
- Por fim, chame o método postPageImageStamps(…) da classe PdfApi onde passamos o PDF de entrada, o número da página para marca d’água e a lista de ImageStamp criada acima como argumento.
- O arquivo PDF com marca d’água de imagem é salvo no mesmo armazenamento em nuvem. A pré-visualização do arquivo resultante é exibida abaixo.
// Para exemplos completos e código-fonte, visite https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
// crie uma instância de PdfApii
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// documento PDF de entrada
String file = "PdfWithTable.pdf";
// Imagem de origem a ser usada para marca d'água
String image = "Koala.jpg";
// número da página onde a marca d'água será adicionada
int pageNumber = 1;
// crie uma instância do objeto ImageStamp
ImageStamp stampObject = new ImageStamp()
.fileName(image)
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(214.)
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
// adicionar marca d'água atrás do conteúdo da página
stampObject.background(true)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
.zoom(0.2);
// crie uma lista de objetos ImageStamp
List<com.aspose.asposecloudpdf.model.ImageStamp> stamps = new ArrayList<>();
// Adicionar ImageStamp à lista de ImageStamps
stamps.add(stampObject);
// chamar método API para adicionar imagem de marca d'água ao PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);

Imagem 2:- Carimbo de imagem adicionado ao documento PDF.
Os arquivos de amostra usados no exemplo acima podem ser baixados no seguinte link.
Adicionar página PDF como carimbo de marca d’água
Além de Texto e Imagem, a página PDF também pode ser adicionada como uma marca d’água a um documento PDF existente. Abaixo estão as etapas sobre como cumprir esses requisitos.
- Primeiro, crie um objeto da classe PdfApi passando o ID do Cliente e o Segredo do Cliente como argumentos.
- Em segundo lugar, crie uma instância da classe PdfPageStamp. Essa classe é usada para especificar o caminho do documento PDF enquanto será usada para marca d’água.
- O método PdfPageStamp.pageIndex(..) é usado para especificar o número da página do arquivo PDF que será usado para marca d’água.
- Entre outros métodos, background(..) é importante, pois é usado para definir uma marca d’água atrás do conteúdo do PDF ou mantê-la sobre o conteúdo.
- Em seguida, crie uma Lista do tipo PdfPageStamp e adicione o objeto PdfPageStamp criado acima à coleção Lista.
- Por fim, chame o método postPagePdfPageStamps(…) da classe PdfApi onde passamos o arquivo PDF de origem, o índice da página a ser marcada d’água e a Lista de PdfPageStamp como argumento. A saída resultante é salva no armazenamento em nuvem.
// Para exemplos completos e código-fonte, visite https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Obtenha ClientID e ClientSecret em https://cloud.aspose.com
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
// criar instância PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// documento PDF de entrada
String sourcePDF = "PdfWithAnnotations.pdf";
// PDF de origem a ser usado para marca d'água
String stampPDF = "rusdoc.pdf";
// número da página onde a marca d'água será adicionada
int pageNumber = 1;
// crie uma instância do objeto PdfPageStamp
PdfPageStamp stampObject = new PdfPageStamp()
// Arquivo PDF para ser usado como marca d'água
.fileName(stampPDF)
// especifique o índice da página que você deseja adicionar como marca d'água
.pageIndex(1)
.leftMargin(150.)
.rightMargin(2.)
// definimos -ve margem superior para mover para cima a marca d'água PDF
.topMargin(-330.)
.bottomMargin(414.)
// definir alinhamento vertical da marca d'água como Topo
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.TOP);
// trazer a marca d'água para o primeiro plano/visível
stampObject.background(false)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
// defina o fator de zoom como 0,7 para que fique comprimido em vez de aparecer em 100%
.zoom(0.7);
// crie uma lista de objetos PdfPageStamp
List<com.aspose.asposecloudpdf.model.PdfPageStamp> stamps = new ArrayList<>();
// Adicionar PdfPageStamp à lista de ImageStamps
stamps.add(stampObject);
// chamar método API para adicionar PDF como marca d'água
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);

Imagem 3:- Visualização do arquivo PDF adicionado como marca d’água.
Os arquivos de amostra usados no exemplo acima podem ser baixados dos seguintes links
Adicionar número de página como marca d’água
Os detalhes do número da página são muito importantes do ponto de vista da usabilidade, pois dão uma indicação clara ao leitor sobre o tamanho do documento, bem como a página que o leitor está navegando.
- Depois de criar a instância PdfApi, crie um objeto da classe PageNumberStamp.
- use o método value(…) da classe PageNumberStamp para especificar o padrão para o carimbo PageNumber.
- Outro método importante é setStartingNumber(..) que indica a contagem a partir da qual a marca d’água do Número de Página deve começar.
- O outro pedaço de código, incluindo detalhes de margem, opacidade, ângulo de rotação, fator de amplitude, etc., são os mesmos dos trechos de código acima.
- Precisamos especificar o startPageNumber e o endPageNumber onde a marca d’água do número da página deve ser colocada.
- Por fim, chame o método postDocumentPageNumberStamps(…) que recebe o arquivo PDF de entrada, o objeto PageNumberStamp, as informações da página inicial e final como argumentos e acrescenta a marca d’água do número da página no arquivo de origem.
// Para exemplos completos e código-fonte, visite https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// documento PDF de entrada
String sourcePDF = "PdfWithTable.pdf";
// crie uma instância do objeto PdfPageStamp
PageNumberStamp stampObject = new PageNumberStamp()
// Formato para marca d'água de número de página
.value("Page #")
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(4.)
// definir alinhamento vertical da marca d'água como Inferior
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.BOTTOM);
// especifique o número inicial para o contador
stampObject.setStartingNumber(3);
// trazer a marca d'água para o primeiro plano/visível
stampObject.background(false)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
.zoom(1.0);
// formulário de página inicial onde colocar marca d'água
int startPageNumber = 2;
// índice de página em direção à qual a marca d'água deve ser colocada
int endPageNumber = 3;
// chamar método API para adicionar PDF como marca d'água
AsposeResponse response = pdfApi.postDocumentPageNumberStamps(sourcePDF, stampObject,startPageNumber, endPageNumber, null, null);

Imagem 4:- Visualização do número da página como marca d’água em PDF.
Os arquivos de amostra usados no exemplo acima podem ser baixados do seguinte link:
Dica rápida
O Aspose.PDF Cloud SDK para Java é tão poderoso que, com algumas linhas de código, você pode converter os formatos JPEG, EPUB, LaTeX, HTML, PS, XSLFo, XPS, SVG, DOCX, PCL para o formato PDF. Para obter mais informações, visite a página do produto.
Conclusão
Nesta postagem do blog, aprendemos sobre as etapas de como podemos adicionar facilmente informações de Texto, Imagem, PDF e PageNumber a documentos PDF existentes usando Aspose.PDF Cloud SDK para Java. Observe que nossos Cloud SDKs são de código aberto e você também pode baixar o código-fonte completo e modificá-lo de acordo com suas necessidades. O código-fonte completo pode ser baixado do repositório GitHub. Caso tenha alguma dúvida relacionada, sinta-se à vontade para entrar em contato por meio de fóruns de suporte gratuitos.