Trabajar con anotaciones en PDF mediante el SDK de Java
API para gestionar anotaciones en documentos PDF con Java.
Get StartedCómo trabajar con anotaciones en documentos PDF usando Cloud Java SDK
Para trabajar con anotaciones en documentos PDF a través de Cloud Java SDK, utilizaremos Aspose.PDF Cloud Java SDK Este SDK en la nube le permite crear fácilmente aplicaciones creadoras, editoras y convertidoras de PDF basadas en la nube en lenguaje Java para diversas plataformas en la nube. Abrir Repository administrador de paquetes, busque Aspose.PDF Cloud e instálelo. También puede usar el siguiente comando desde la consola del Administrador de paquetes para instalarlo usando Maven.
Agregue el repositorio Aspose Cloud a su archivo pom.xml de la aplicación
Agregar repositorio Aspose Cloud
<repositories>
<repository>
<id>aspose-cloud</id>
<name>Aspose Cloud Repository</name>
<url>https://releases.aspose.cloud/java/repo/</url>
</repository>
</repositories>
Para instalar la biblioteca cliente de la API en su repositorio Maven local, simplemente ejecute:
Instalación desde Github
mvn clean install
Para desplegarlo en un repositorio Maven remoto, configure los ajustes del repositorio y ejecute:
Desplegar repositorio Maven
mvn clean deploy
Pasos para agregar anotaciones usando Java SDK
Los desarrolladores de Aspose.PDF Cloud pueden cargar y añadir anotaciones a documentos PDF fácilmente con solo unas pocas líneas de código.
- Carga el PDF.
- Crea un cuadro de texto con estilo (con fuentes, colores, alineación).
- Envía la anotación a la página especificada.
- Descarga el documento modificado para uso local.
Este código de ejemplo muestra cómo agregar anotaciones a un documento PDF
package com.aspose.asposecloudpdfusecases.annotations;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
import com.aspose.asposecloudpdf.api.PdfApi;
import com.aspose.asposecloudpdf.model.AsposeResponse;
import com.aspose.asposecloudpdf.model.Color;
import com.aspose.asposecloudpdf.model.FreeTextAnnotation;
import com.aspose.asposecloudpdf.model.FreeTextIntent;
import com.aspose.asposecloudpdf.model.HorizontalAlignment;
import com.aspose.asposecloudpdf.model.Justification;
import com.aspose.asposecloudpdf.model.Rectangle;
import com.aspose.asposecloudpdf.model.TextStyle;
public class AnnotationAddText {
public static void Create() {
String REMOTE_FOLDER = "Your_Temp_Pdf_Cloud";
String LOCAL_FOLDER = "c:\\Samples";
String PDF_DOCUMENT = "sample.pdf";
String PDF_OUTPUT = "annotation_add_freetext_output.pdf";
Integer PAGE_NUMBER = 1;
String NEW_UL_ANNOTATION_TEXT = "NEW FREE TEXT ANNOTATION";
String NEW_UL_ANNOTATION_DESCRIPTION = "This is a sample free text annotation";
String NEW_UL_ANNOTATION_SUBJECT = "Free Text Box Subject";
String NEW_UL_ANNOTATION_CONTENTS = "Free text annotation sample contents";
try {
PdfApi pdfApi = new PdfApi(API_KEY, API_SECRET);
// upload local PDF file to remote storage
File file = new File(Path.of(LOCAL_FOLDER, PDF_DOCUMENT).toString());
pdfApi.uploadFile(Path.of(REMOTE_FOLDER , PDF_DOCUMENT).toString(), file, null);
System.out.println(String.format("File '%s' successfully uploaded!", Path.of(LOCAL_FOLDER, PDF_DOCUMENT).toString()));
TextStyle textStyle = new TextStyle();
textStyle.setFontSize(20.);
textStyle.setForegroundColor(new Color().A(255).G(255));
textStyle.setBackgroundColor(new Color().A(255).R(255));
FreeTextAnnotation annotation = new FreeTextAnnotation();
annotation.setName("Free_Text_Annotation");
annotation.setRect(new Rectangle().LLX(100.).LLY(350.).URX(450.).URY(400.));
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setIntent(FreeTextIntent.FREETEXTTYPEWRITER);
annotation.setRichText(NEW_UL_ANNOTATION_TEXT);
annotation.setSubject(NEW_UL_ANNOTATION_SUBJECT);
annotation.setContents(NEW_UL_ANNOTATION_CONTENTS);
annotation.setTitle(NEW_UL_ANNOTATION_DESCRIPTION);
annotation.setZindex(1);
annotation.setJustification(Justification.CENTER);
annotation.setTextStyle(textStyle);
annotation.setModified("11/20/2025 00:00:00.000 AM");
List<FreeTextAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
AsposeResponse response = pdfApi.postPageFreeTextAnnotations(PDF_DOCUMENT, PAGE_NUMBER, annotations, null, REMOTE_FOLDER);
if (response.getCode() != 200)
System.err.println("Error: unexpected error when adding annotation! '" + response.getStatus() + "'");
else{
// download changed PDF file from remote folder...
File f = pdfApi.downloadFile(Path.of(REMOTE_FOLDER , PDF_DOCUMENT).toString(), null, null);
java.nio.file.Files.copy(Path.of(f.getPath()), Path.of(LOCAL_FOLDER, PDF_OUTPUT), StandardCopyOption.REPLACE_EXISTING);
System.out.println(String.format("File '%s' successfully dowloaded!", Path.of(LOCAL_FOLDER, PDF_OUTPUT).toString()));
System.out.println("Successfully added annotation in document ! '" + PDF_OUTPUT + "'");
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}