Bekerja dengan Anotasi di PDF via SDK Java
API untuk mengelola anotasi dalam dokumen PDF dengan Java.
Get StartedCara kerja dengan anotasi dalam dokumen PDF menggunakan Cloud Java SDK
Untuk bekerja dengan anotasi dalam dokumen PDF melalui Cloud Java SDK, kami akan menggunakan Aspose.PDF Cloud Java SDK SDK Cloud ini memungkinkan Anda dengan mudah membangun aplikasi pembuat, editor, dan konverter PDF berbasis cloud dalam bahasa Java untuk berbagai platform cloud. Buka Repository pengelola paket, cari Aspose.PDF Cloud dan pasang. Anda juga dapat menggunakan perintah berikut dari Package Manager Console untuk menginstalnya menggunakan Maven.
Tambahkan repositori Aspose Cloud ke pom.xml aplikasi Anda
Tambahkan repositori Aspose Cloud
<repositories>
<repository>
<id>aspose-cloud</id>
<name>Aspose Cloud Repository</name>
<url>https://releases.aspose.cloud/java/repo/</url>
</repository>
</repositories>
Untuk menginstal perpustakaan klien API ke repositori Maven lokal Anda, cukup jalankan:
Instalasi dari Github
mvn clean install
Untuk menyebarkannya ke repositori Maven remote, konfigurasikan pengaturan repositori dan jalankan:
Sebarkan repositori Maven
mvn clean deploy
Langkah-langkah menambahkan anotasi menggunakan Java SDK
Pengembang Aspose.PDF Cloud dapat dengan mudah memuat & menambahkan anotasi ke dokumen PDF hanya dengan beberapa baris kode.
- Mengunggah PDF.
- Membuat kotak teks bergaya (dengan font, warna, penataan).
- Mengirimkan anotasi ke halaman yang ditentukan.
- Mengunduh dokumen yang telah dimodifikasi untuk penggunaan lokal.
Contoh kode ini menunjukkan cara menambahkan anotasi ke dokumen 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();
}
}
}