
Una marca de agua es un texto o una imagen que aparece delante o detrás del contenido de un documento existente, como un sello. Por ejemplo, puede aplicar una marca de agua de “Confidencial” a páginas con información confidencial. Las marcas de agua se pueden utilizar para proteger información confidencial y para indicar la validez de un documento legal. También puede marcar con agua cualquier billete de papel, ya que ayudan a evitar la falsificación. En este artículo, vamos a analizar las características relacionadas con las marcas de agua en documentos PDF.
- API REST de manipulación de PDF
- Agregar marca de agua de texto en PDF mediante API REST
- Cómo agregar una marca de agua de imagen en un PDF usando Java
- Agregar página PDF como sello de marca de agua
- Agregar número de página como marca de agua
API REST de manipulación de PDF
Aspose.PDF Cloud es nuestra galardonada API REST que ofrece la capacidad de crear, manipular y renderizar archivos PDF a otros formatos compatibles, incluidos DOCX, PPTX, XLSX, XPS, SVG, JPEG, etc. Ahora hablemos de Aspose.PDF Cloud SDK for Java, que es un contenedor Java para Aspose.PDF Cloud API. Proporciona todas las funciones de Cloud REST API, incluidas las capacidades para agregar marcas de agua a PDF mediante el lenguaje de programación Java.
Para utilizar Java Cloud SDK, el primer paso es instalar Aspose.PDF Cloud SDK for Java. El Cloud SDK está disponible para descargar en Maven | GitHub. A continuación, se detalla cómo descargar y utilizar Aspose.Pdf.jar en el proyecto de compilación de Maven.
Agregue las siguientes dependencias en su archivo 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>
Agregar marca de agua de texto en PDF mediante API REST
Para utilizar las API de la nube, primero debe registrar una cuenta en el panel de control de Aspose.Cloud, donde verá su ID de cliente personalizada y los detalles de su secreto de cliente. Estos son esenciales para acceder a las API. A continuación, se detalla cómo agregar una marca de agua de texto a un documento PDF existente con Java.
- Primero, debe especificar su ID de cliente y los detalles del secreto de cliente en dos variables.
- En segundo lugar, cree un objeto de la clase PdfApi proporcionando el ID de cliente y el secreto de cliente como argumentos.
- En tercer lugar, creamos un objeto de la clase TextState donde especificamos el nombre de la fuente como Arial y el tamaño de la fuente como 14.
- Ahora necesitamos crear una instancia de la clase TextStamp. Al usar este objeto, especificaremos HorizontalAlignment como centro. El valor de la estampa de texto, el tamaño de fuente y los detalles del tipo de fuente se especifican mediante el método textState(..) donde el objeto TextState creado en el paso anterior se pasa como argumento. Los detalles del margen y VerticalAlignment también se especifican como centro.
- Para mostrar TextStamp en segundo plano, se utiliza el método background(..) con un argumento como verdadero.
- Además, también se especifican la opacidad, el ángulo de rotación, el factor de zoom y la sangría XY del sello.
- Ahora cree un objeto de la clase List con el tipo TextStamp y agregue el objeto de sello creado anteriormente a esta lista.
- Por último, llame al método postPageTextStamps(..) de PdfAPi y pase el PDF de entrada, el número de página y la lista de sellos como argumento para iniciar el proceso de sello.
// Para obtener ejemplos completos y el código fuente, visite https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Obtenga ClientID y ClientSecret desde 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 = "";
// Cree una instancia de PdfApi utilizando los detalles de ID de cliente y secreto de cliente
com.aspose.asposecloudpdf.api.PdfApi pdfApi = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientId);
// Crea un objeto de TextState y especifica los detalles del formato de fuente.
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.);
// Crea un objeto de lista con tipo TextStamp
List<com.aspose.asposecloudpdf.model.TextStamp> stamps = new ArrayList<>();
// Agregar instancia de TextStamp a la lista de TextStamps
stamps.add(stamp);
// Llamar al método para publicar TextStamp en la primera página del archivo PDF
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);

Imagen 1:- Sello de texto agregado al documento PDF.
Los archivos de muestra utilizados en el ejemplo anterior se pueden descargar desde los siguientes enlaces:
Cómo agregar una marca de agua de imagen en un PDF usando Java
Con menos líneas de código, la marca de agua de imagen se puede agregar fácilmente a un documento PDF. A continuación, se muestran los pasos para agregar una imagen JPEG a un archivo PDF.
- El primer paso es crear un objeto PdfApi mientras se pasa ClientSecret y ClientID como argumento.
- El siguiente paso es crear el objeto ImageStamp, donde definimos el archivo de imagen que se va a estampar, los detalles de los márgenes y la alineación vertical. En nuestro caso, hemos seleccionado el valor Center de la enumeración VerticalAlignment.
- Establezca ImageStamp.background(True) para que la imagen aparezca detrás del contenido de la página. De lo contrario, aparecerá encima del contenido de la página.
- Cree un objeto de lista de tipo ImageStamp y agregue el objeto ImageStamp creado en el segundo paso a esta colección.
- Por último, llamamos al método postPageImageStamps(…) de la clase PdfApi donde pasamos el PDF de entrada, el número de página para la marca de agua y la lista ImageStamp creada anteriormente como argumento.
- El archivo PDF con la marca de agua de la imagen se guarda en el mismo almacenamiento en la nube. La vista previa del archivo resultante se muestra a continuación.
// Para obtener ejemplos completos y el código fuente, visite https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Obtenga ClientID y ClientSecret desde https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
// crear una instancia de PdfApii
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// documento PDF de entrada
String file = "PdfWithTable.pdf";
// Imagen de origen que se utilizará como marca de agua
String image = "Koala.jpg";
// Número de página donde se agregará la marca de agua.
int pageNumber = 1;
// crear una instancia del objeto ImageStamp
ImageStamp stampObject = new ImageStamp()
.fileName(image)
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(214.)
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
// Agregar marca de agua detrás del contenido de la 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);
// crear una lista de objetos ImageStamp
List<com.aspose.asposecloudpdf.model.ImageStamp> stamps = new ArrayList<>();
// Agregar ImageStamp a la lista de ImageStamps
stamps.add(stampObject);
// Llamar al método API para agregar una imagen de marca de agua a un PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);

Imagen 2:- Sello de imagen agregado al documento PDF.
Los archivos de muestra utilizados en el ejemplo anterior se pueden descargar desde el siguiente enlace.
Agregar página PDF como sello de marca de agua
Además de texto e imagen, la página PDF también se puede agregar como marca de agua a un documento PDF existente. A continuación, se indican los pasos para cumplir con estos requisitos.
- En primer lugar, cree un objeto de la clase PdfApi mientras pasa el ID de cliente y el secreto de cliente como argumentos.
- En segundo lugar, crea una instancia de la clase PdfPageStamp. Esta clase se utiliza para especificar la ruta del documento PDF y se utilizará para la marca de agua.
- El método PdfPageStamp.pageIndex(..) se utiliza para especificar el número de página del archivo PDF que se utilizará como marca de agua.
- Entre otros métodos, background(..) es importante ya que se utiliza para establecer una marca de agua detrás del contenido PDF o mantenerla sobre el contenido.
- Luego cree una Lista de tipo PdfPageStamp y agregue el objeto PdfPageStamp creado anteriormente a la colección Lista.
- Por último, llamamos al método postPagePdfPageStamps(…) de la clase PdfApi, donde pasamos el archivo PDF de origen, el índice de la página a la que se aplicará la marca de agua y la lista de PdfPageStamp como argumento. El resultado se guarda en un almacenamiento en la nube.
// Para obtener ejemplos completos y el código fuente, visite https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Obtenga ClientID y ClientSecret desde https://cloud.aspose.com
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
// crear una instancia de PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// documento PDF de entrada
String sourcePDF = "PdfWithAnnotations.pdf";
// PDF de origen que se utilizará como marca de agua
String stampPDF = "rusdoc.pdf";
// Número de página donde se agregará la marca de agua.
int pageNumber = 1;
// crear una instancia del objeto PdfPageStamp
PdfPageStamp stampObject = new PdfPageStamp()
// Archivo PDF para utilizar como marca de agua
.fileName(stampPDF)
// Especifique el índice de la página que desea agregar como marca de agua
.pageIndex(1)
.leftMargin(150.)
.rightMargin(2.)
// Hemos establecido el margen superior -ve para mover hacia arriba la marca de agua PDF
.topMargin(-330.)
.bottomMargin(414.)
// Establecer la alineación vertical de la marca de agua como Superior
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.TOP);
// Traer la marca de agua al primer plano/visible
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.)
// Establezca el factor de zoom en 0,7 para que se aplaste en lugar de aparecer al 100 %.
.zoom(0.7);
// crear una lista de objetos PdfPageStamp
List<com.aspose.asposecloudpdf.model.PdfPageStamp> stamps = new ArrayList<>();
// Agregar PdfPageStamp a la lista de ImageStamps
stamps.add(stampObject);
// Llamar al método API para agregar un PDF como marca de agua
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);

Imagen 3:- Vista previa del archivo PDF agregado como marca de agua.
Los archivos de muestra utilizados en el ejemplo anterior se pueden descargar desde los siguientes enlaces
Agregar número de página como marca de agua
Los detalles del número de página son muy importantes desde una perspectiva de usabilidad, ya que dan una indicación clara al lector sobre la longitud del documento, así como la página que está revisando.
- Una vez que hayamos creado la instancia de PdfApi, creamos un objeto de la clase PageNumberStamp.
- Utilice el método value(…) de la clase PageNumberStamp para especificar el patrón para el sello PageNumber.
- Otro método importante es setStartingNumber(..) que indica el recuento desde el cual debe comenzar la marca de agua del número de página.
- El resto del código, incluidos los detalles de los márgenes, la opacidad, el ángulo de rotación, el factor OOM, etc., son los mismos que los fragmentos de código anteriores.
- Necesitamos especificar startPageNumber y endPageNumber donde se colocará la marca de agua del número de página.
- Por último, llame a postDocumentPageNumberStamps(…) que toma el archivo PDF de entrada, el objeto PageNumberStamp, la información de la página de inicio y finalización como argumentos y agrega la marca de agua del número de página en el archivo de origen.
// Para obtener ejemplos completos y el código fuente, visite https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// Obtenga ClientID y ClientSecret desde 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";
// crear una instancia del objeto PdfPageStamp
PageNumberStamp stampObject = new PageNumberStamp()
// Formato para marca de agua de número de página
.value("Page #")
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(4.)
// Establecer la alineación vertical de la marca de agua como Inferior
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.BOTTOM);
// Especifica el número inicial del contador.
stampObject.setStartingNumber(3);
// Traer la marca de agua al primer plano/visible
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);
// Formulario de página de inicio donde colocar la marca de agua
int startPageNumber = 2;
// Índice de página hacia el cual se colocará la marca de agua
int endPageNumber = 3;
// Llamar al método API para agregar un PDF como marca de agua
AsposeResponse response = pdfApi.postDocumentPageNumberStamps(sourcePDF, stampObject,startPageNumber, endPageNumber, null, null);

Imagen 4:- Vista previa del número de página como marca de agua en PDF.
Los archivos de muestra utilizados en el ejemplo anterior se pueden descargar desde el siguiente enlace:
Consejo rápido
Aspose.PDF Cloud SDK para Java es tan potente que con un par de líneas de código, puede convertir los formatos JPEG, EPUB, LaTeX, HTML, PS, XSLFo, XPS, SVG, DOCX, PCL al formato PDF. Para obtener más información, visite la página del producto.
Conclusión
En esta publicación del blog, aprendimos los pasos para agregar fácilmente información de texto, imagen, PDF y número de página a documentos PDF existentes usando Aspose.PDF Cloud SDK para Java. Tenga en cuenta que nuestros SDK en la nube son de código abierto y también puede descargar su código fuente completo y modificarlo según sus requisitos. El código fuente completo se puede descargar del repositorio GitHub. Si tiene alguna consulta relacionada, no dude en comunicarse a través de foros de soporte gratuitos.