Δημιουργία Καθαρών PDF Java: Υπογράμμιση Σχολίων με GroupDocs
Αν χρειάζεστε create clean PDF Java αρχεία και να προσθέσετε συνεργατικά σχόλια, βρίσκεστε στο σωστό μέρος. Αντιμετωπίζετε δυσκολίες με τη διαχείριση εγγράφων και τη συνεργασία στις Java εφαρμογές σας; Δεν είστε μόνοι. Πολλοί προγραμματιστές αντιμετωπίζουν την πρόκληση της υλοποίησης αξιόπιστων λειτουργιών σχολιασμού εγγράφων που λειτουργούν αξιόπιστα σε διαφορετικές μορφές αρχείων.
Σε αυτόν τον οδηγό, θα create clean PDF Java αρχεία και θα μάθετε πώς να annotate PDF in Java χρησιμοποιώντας το GroupDocs.Annotation. Στο τέλος του tutorial, θα γνωρίζετε ακριβώς πώς να προσθέτετε υπογραμμισμένα σχόλια, να αφαιρείτε υπάρχοντα σχόλια και να ενσωματώνετε αυτές τις δυνατότητες αβίαστα στα έργα σας.
Τι θα μάθετε σε αυτόν τον οδηγό:
- Ρύθμιση του GroupDocs.Annotation στο Java project σας (με τον σωστό τρόπο)
- Προσθήκη υπογραμμισμένων σχολίων με προσαρμοσμένα σχόλια και στυλ
- Αφαίρεση όλων των σχολίων για δημιουργία καθαρών εκδόσεων εγγράφων
- Επίλυση κοινών προβλημάτων που αντιμετωπίζουν οι προγραμματιστές
- Βελτιστοποίηση απόδοσης για παραγωγικές εφαρμογές
Είτε δημιουργείτε σύστημα ανασκόπησης εγγράφων, εκπαιδευτική πλατφόρμα ή εργαλείο συνεργατικής επεξεργασίας, αυτό το tutorial καλύπτει τις ανάγκες σας με πρακτικά, δοκιμασμένα παραδείγματα κώδικα.
Γρήγορες Απαντήσεις
- Πώς προσθέτω υπογραμμισμένο σχόλιο; Χρησιμοποιήστε
UnderlineAnnotationκαιannotator.add(), στη συνέχεια αποθηκεύστε το έγγραφο. - Πώς μπορώ να δημιουργήσω ένα clean PDF Java αρχείο; Φορτώστε το σχολιασμένο αρχείο, ορίστε
AnnotationType.NONEστοSaveOptionsκαι αποθηκεύστε ένα νέο αντίγραφο. - Τι βιβλιοθήκες απαιτούνται; GroupDocs.Annotation v25.2 (ή νεότερη) και το Maven repository της.
- Χρειάζομαι άδεια για παραγωγή; Ναι—εφαρμόστε μια έγκυρη άδεια GroupDocs για να αποφύγετε τα υδατογραφήματα.
- Μπορώ να επεξεργαστώ πολλά έγγραφα αποδοτικά; Τυλίξτε κάθε
Annotatorσε ένα try‑with‑resources block και απελευθερώστε το μετά από κάθε αρχείο.
Πώς να δημιουργήσετε clean PDF Java αρχεία
Η δημιουργία ενός clean PDF Java αρχείου σημαίνει την παραγωγή μιας έκδοσης του εγγράφου χωρίς κανένα σχόλιο, διατηρώντας το αρχικό περιεχόμενο. Αυτό είναι χρήσιμο για τελική διανομή, αρχειοθέτηση ή όταν χρειάζεται να μοιραστείτε ένα “καθαρό” αντίγραφο μετά από κύκλο ανασκόπησης.
Το GroupDocs.Annotation το κάνει απλό: φορτώστε το σχολιασμένο αρχείο, ρυθμίστε το SaveOptions ώστε να εξαιρούνται όλοι οι τύποι σχολίων και αποθηκεύστε το αποτέλεσμα. Τα βήματα απεικονίζονται αργότερα στην ενότητα Removing Annotations.
Γιατί να δημιουργείτε clean PDF Java αρχεία;
Μια καθαρή έκδοση αφαιρεί τα σημάδια των ελεγκτών, τα σχόλια και τις επισημάνσεις, παρέχοντάς σας ένα τελειοποιημένο έγγραφο έτοιμο για πελάτες, ρυθμιστικές αρχές ή δημόσια κυκλοφορία. Επίσης μειώνει το μέγεθος του αρχείου και αποτρέπει τυχαία αποκάλυψη εσωτερικών σημειώσεων—κρίσιμο για νομικές και συμμορφωτικές διαδικασίες.
Πώς να annotate PDF in Java χρησιμοποιώντας το GroupDocs
Το GroupDocs.Annotation παρέχει ένα πλούσιο API για annotate PDF in Java. Υποστηρίζει μια ευρεία γκάμα τύπων σχολίων, συμπεριλαμβανομένων των επισημάνσεων, σφραγίδων και υπογραμμίσεων. Σε αυτό το tutorial εστιάζουμε στις υπογραμμισμένες σημειώσεις, επειδή χρησιμοποιούνται συχνά για την τόνωση κειμένου ενώ επιτρέπουν νήματα σχολίων.
Προαπαιτούμενα και Ρύθμιση Περιβάλλοντος
Τι Θα Χρειαστείτε Πριν Ξεκινήσετε
Απαιτήσεις Περιβάλλοντος Ανάπτυξης:
- Java Development Kit (JDK) 8 ή νεότερο (συνιστάται JDK 11+)
- Maven 3.6+ ή Gradle 6.0+ για διαχείριση εξαρτήσεων
- IDE όπως IntelliJ IDEA, Eclipse ή VS Code με επεκτάσεις Java
- Τουλάχιστον 2 GB διαθέσιμη μνήμη RAM (η επεξεργασία εγγράφων μπορεί να είναι απαιτητική)
Προαπαιτούμενες Γνώσεις: Θα πρέπει να είστε άνετοι με βασικές έννοιες της Java—αρχικοποίηση αντικειμένων, κλήσεις μεθόδων και εξαρτήσεις Maven. Προηγούμενη εμπειρία με βιβλιοθήκες τρίτων θα επιταχύνει την υιοθέτηση.
Έγγραφα Δοκιμής: Έχετε μερικά δείγματα PDF έτοιμα. Τα PDF με κείμενο λειτουργούν καλύτερα· τα σαρωμένα εικόνα μπορεί να χρειάζονται OCR πριν το σχολιασμό.
Ρύθμιση Maven: Προσθήκη του GroupDocs στο Project σας
Ακολουθεί η σωστή διαμόρφωση του Maven project (αυτό είναι το σημείο που πολλοί προγραμματιστές κολλάνε στην πρώτη τους προσπάθεια):
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/annotation/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-annotation</artifactId>
<version>25.2</version>
</dependency>
</dependencies>
Σημαντικό: Η έκδοση 25.2 είναι η πιο πρόσφατη σταθερή κυκλοφορία τη στιγμή της συγγραφής. Ελέγχετε τακτικά το αποθετήριο του GroupDocs για νεότερες εκδόσεις με διορθώσεις σφαλμάτων και βελτιώσεις απόδοσης.
Ρύθμιση Άδειας (Μην το Παραλείψετε)
Για Ανάπτυξη/Δοκιμές:
Κατεβάστε τη δωρεάν δοκιμαστική έκδοση από την ιστοσελίδα του GroupDocs. Η δοκιμή περιλαμβάνει όλες τις λειτουργίες αλλά προσθέτει υδατογράφημα στα επεξεργασμένα έγγραφα.
Για Παραγωγή:
Αγοράστε άδεια και εφαρμόστε την κατά την εκκίνηση της εφαρμογής. Χωρίς έγκυρη άδεια, οι παραγωγικές εκδόσεις θα είναι περιορισμένες.
Οδηγός Υλοποίησης: Προσθήκη Υπογραμμισμένων Σχολίων
Κατανόηση της Ροής Εργασίας Σχολίων
Πριν βουτήξουμε στον κώδικα, ας δούμε τη 4‑βήματη ροή εργασίας που συμβαίνει όταν annotate PDF in Java:
- Φόρτωση Εγγράφου –
Annotatorδιαβάζει το αρχείο στη μνήμη. - Δημιουργία Σχολίου – Ορίζετε ιδιότητες όπως θέση, στυλ και σχόλια.
- Εφαρμογή Σχολίου – Η βιβλιοθήκη ενσωματώνει το σχόλιο στη δομή του PDF.
- Αποθήκευση Εγγράφου – Εξαγωγή του τροποποιημένου αρχείου, προαιρετικά διατηρώντας το αρχικό.
Η διαδικασία είναι μη καταστροφική· το αρχικό αρχείο παραμένει αμετάβλητο εκτός αν το αντικαταστήσετε.
Βήμα 1: Αρχικοποίηση του Annotator και Φόρτωση του Εγγράφου
import com.groupdocs.annotation.Annotator;
// Load the document you want to annotate
Annotator annotator = new Annotator("YOUR_DOCUMENT_DIRECTORY/input.pdf");
Συμβουλή: Χρησιμοποιήστε απόλυτες διαδρομές κατά την ανάπτυξη για να αποφύγετε σφάλματα “file not found”. Σε παραγωγή, σκεφτείτε τη φόρτωση πόρων από το classpath ή ένα cloud storage bucket.
Βήμα 2: Δημιουργία Σχολίων και Απαντήσεων (Το Συνεργατικό Μέρος)
import com.groupdocs.annotation.models.Reply;
import java.util.Calendar;
import java.util.ArrayList;
import java.util.List;
Reply reply1 = new Reply();
reply1.setComment("First comment");
reply1.setRepliedOn(Calendar.getInstance().getTime());
Reply reply2 = new Reply();
reply2.setComment("Second comment");
reply2.setRepliedOn(Calendar.getInstance().getTime());
List<Reply> replies = new ArrayList<>();
replies.add(reply1);
replies.add(reply2);
Πραγματική Χρήση: Οι ελεγκτές μπορούν να συζητήσουν μια συγκεκριμένη ρήτρα προσθέτοντας νήματα απαντήσεων, κρατώντας τη συζήτηση δεσμευμένη στο ακριβές σχόλιο.
Βήμα 3: Ορισμός Συντεταγμένων Σχολίου (Σωστή Θέση)
import com.groupdocs.annotation.models.Point;
Point point1 = new Point(80, 730);
Point point2 = new Point(240, 730);
Point point3 = new Point(80, 650);
Point point4 = new Point(240, 650);
List<Point> points = new ArrayList<>();
points.add(point1);
points.add(point2);
points.add(point3);
points.add(point4);
Σύστημα Συντεταγμένων:
- Τα σημεία 1 & 2 ορίζουν την άνω άκρη της υπογράμμισης.
- Τα σημεία 3 & 4 ορίζουν την κάτω άκρη.
- Η διαφορά Y (730 vs 650) ελέγχει το πάχος.
Βήμα 4: Δημιουργία και Διαμόρφωση του Υπογραμμισμένου Σχολίου
import com.groupdocs.annotation.models.annotationmodels.UnderlineAnnotation;
UnderlineAnnotation underline = new UnderlineAnnotation();
underline.setCreatedOn(Calendar.getInstance().getTime());
underline.setFontColor(65535); // Yellow in ARGB format
underline.setMessage("This is an underline annotation");
underline.setOpacity(0.7f);
underline.setPageNumber(0);
underline.setPoints(points);
underline.setReplies(replies);
annotator.add(underline);
Συμβουλές Χρώματος & Αδιαφάνειας:
FontColorχρησιμοποιεί ARGB·65535(0x00FFFF) δίνει φωτεινό κίτρινο.- Για κόκκινο, χρησιμοποιήστε
16711680(0xFF0000); για μπλε,255(0x0000FF). - Τιμές αδιαφάνειας μεταξύ 0.5 και 0.8 παρέχουν καλή αναγνωσιμότητα χωρίς να καλύπτουν το κείμενο.
Βήμα 5: Αποθήκευση του Σχολιασμένου Εγγράφου
String outputPath = "YOUR_OUTPUT_DIRECTORY/output.pdf";
annotator.save(outputPath);
annotator.dispose();
Διαχείριση Μνήμης: Η κλήση dispose() απελευθερώνει εγγενείς πόρους και αποτρέπει διαρροές μνήμης—κρίσιμο όταν επεξεργάζεστε πολλά αρχεία σε batch.
Αφαίρεση Σχολίων: Δημιουργία Καθαρών Εκδόσεων Εγγράφων
Μερικές φορές χρειάζεστε μια έκδοση του PDF χωρίς κανένα σχόλιο—π.χ., όταν παραδίδετε το τελικό εγκεκριμένο συμβόλαιο. Το GroupDocs το κάνει εύκολο.
Κατανόηση Επιλογών Αφαίρεσης Σχολίων
Μπορείτε:
- Να αφαιρέσετε όλα τα σχόλια (το πιο κοινό)
- Να αφαιρέσετε συγκεκριμένους τύπους (π.χ., μόνο επισημάνσεις)
- Να αφαιρέσετε σχόλια ανά συγγραφέα ή σελίδα
Βήμα‑βήμα Αφαίρεση Σχολίων
Βήμα 1: Φόρτωση του Προηγουμένως Σχολιασμένου Εγγράφου
Annotator annotator = new Annotator(outputPath);
Βήμα 2: Διαμόρφωση Επιλογών Αποθήκευσης για Καθαρό Αποτέλεσμα
import com.groupdocs.annotation.options.export.AnnotationType;
import com.groupdocs.annotation.options.export.SaveOptions;
SaveOptions saveOptions = new SaveOptions();
saveOptions.setAnnotationTypes(AnnotationType.NONE);
Βήμα 3: Αποθήκευση της Καθαρής Έκδοσης
String noneAnnotationPath = Paths.get(outputPath).resolveSibling("none-annotation.pdf").toString();
annotator.save(noneAnnotationPath, saveOptions);
annotator.dispose();
Αυτό παράγει ένα clean PDF Java αρχείο που δεν περιέχει αντικείμενα σχολίων, ιδανικό για τελική διανομή.
Συχνά Προβλήματα και Λύσεις
Πρόβλημα 1: Σφάλμα “Document not found”
File inputFile = new File("path/to/your/document.pdf");
if (!inputFile.exists()) {
throw new IllegalArgumentException("Document not found: " + inputFile.getAbsolutePath());
}
if (!inputFile.canRead()) {
throw new IllegalArgumentException("Cannot read document: " + inputFile.getAbsolutePath());
}
Annotator annotator = new Annotator(inputFile.getAbsolutePath());
Πρόβλημα 2: Σχόλια σε Λάθος Θέση
// Test with a simple rectangle in the top‑left corner
Point point1 = new Point(10, 10); // Top‑left
Point point2 = new Point(100, 10); // Top‑right
Point point3 = new Point(10, 30); // Bottom‑left
Point point4 = new Point(100, 30); // Bottom‑right
Πρόβλημα 3: Προβλήματα Μνήμης με Μεγάλα Έγγραφα
// Increase JVM heap size when launching the app, e.g., -Xmx2g
try (Annotator annotator = new Annotator("document.pdf")) {
// Annotation logic here
annotator.save("output.pdf");
}
Πρόβλημα 4: Προβλήματα Άδειας στην Παραγωγή
try {
License license = new License();
license.setLicense("path/to/your/license.lic");
System.out.println("License loaded successfully");
} catch (Exception e) {
System.err.println("License loading failed: " + e.getMessage());
// Handle the error appropriately
}
Καλές Πρακτικές Απόδοσης για Παραγωγικές Εφαρμογές
Στρατηγικές Διαχείρισης Μνήμης
try (Annotator annotator = new Annotator("input.pdf")) {
// Your annotation logic
annotator.save("output.pdf");
} // Annotator is automatically disposed here
List<String> documentPaths = Arrays.asList("doc1.pdf", "doc2.pdf", "doc3.pdf");
for (String docPath : documentPaths) {
try (Annotator annotator = new Annotator(docPath)) {
// Process one document at a time
annotator.add(createAnnotation());
annotator.save(getOutputPath(docPath));
}
// Memory is freed after each iteration
}
Σκέψεις για Πολυνηματικότητα
Το GroupDocs.Annotation δεν είναι thread‑safe από προεπιλογή. Αν η εφαρμογή σας επεξεργάζεται έγγραφα ταυτόχρονα:
- Μην μοιράζεστε ένα αντικείμενο
Annotatorμεταξύ νημάτων. - Συγχρονίστε την πρόσβαση σε αρχεία ή χρησιμοποιήστε μηχανισμό κλειδώματος.
- Σκεφτείτε ένα pool αντικειμένων
Annotatorαν χρειάζεστε υψηλή διαπερατότητα.
Στρατηγικές Caching
- Cache συχνά χρησιμοποιούμενα πρότυπα σχολίων.
- Επαναχρησιμοποιήστε συλλογές
Pointγια κοινά σύνολα συντεταγμένων. - Κρατήστε ένα template PDF στη μνήμη αν υπογραμμίζετε επανειλημμένα το ίδιο βασικό έγγραφο.
Συμβουλές Διαχείρισης Μνήμης για Java PDF
Η αποδοτική χρήση μνήμης είναι απαραίτητη όταν χειρίζεστε μεγάλα PDF ή επεξεργάζεστε πολλά αρχεία σε batch. Ακολουθούν μερικές πρακτικές προτάσεις:
- Χρησιμοποιήστε try‑with‑resources για κάθε
Annotatorώστε να εξασφαλίζεται η απελευθέρωση. - Αυξήστε το heap της JVM (
-Xmx) μόνο όταν χρειάζεται· παρακολουθήστε τη χρήση με εργαλεία profiling. - Επεξεργαστείτε τα έγγραφα διαδοχικά όταν είναι δυνατόν, ελευθερώνοντας μνήμη μετά από κάθε αρχείο.
- Αποφύγετε την επαναφόρτωση του ίδιου PDF· επαναχρησιμοποιήστε το ίδιο stream αν χρειάζεται να το διαβάσετε ξανά.
Η εφαρμογή αυτών των πρακτικών βοηθά το σύστημα να παραμένει ανταποκρινόμενο και αποτρέπει καταρρεύσεις λόγω έλλειψης μνήμης κατά έντονη φόρτωση σχολίων.
Πραγματικές Εφαρμογές και Περιπτώσεις Χρήσης
Συστήματα Ανασκόπησης Εγγράφων
- Νομική Ανασκόπηση: Υπογράμμιση ρήρων συμβάσεων και προσθήκη σχολίων για κίνδυνο.
- Έλεγχοι Συμμόρφωσης: Επισημάνετε προβληματικές ενότητες σε οικονομικές καταστάσεις.
- Ακαδημαϊκή Ανασκόπηση: Καθηγητές υπογραμμίζουν αποσπάσματα που χρειάζονται διευκρίνιση.
Εκπαιδευτικές Πλατφόρμες
- Εργαλεία Σχολιασμού Μαθητών: Επιτρέπουν στους σπουδαστές να υπογραμμίζουν βασικές έννοιες σε e‑books.
- Ανατροφοδότηση Καθηγητών: Παρέχουν ενσωματωμένα σχόλια απευθείας σε υποβληθέντες εργασίες.
Ροές Εργασίας Ποιοτικού Ελέγχου
- Ανασκόπηση Τεχνικής Τεκμηρίωσης: Οι μηχανικοί υπογραμμίζουν τμήματα που χρειάζονται ενημέρωση.
- Τυπικές Λειτουργικές Διαδικασίες: Οι υπεύθυνοι ασφαλείας επισημαίνουν κρίσιμα βήματα.
Συστήματα Διαχείρισης Περιεχομένου
- Επεξεργασία Επεξεργαστών: Οι συντάκτες υπογραμμίζουν κείμενο που απαιτεί επαλήθευση.
- Έλεγχος Εκδόσεων: Παρακολουθείτε το ιστορικό σχολίων σε διαφορετικές εκδόσεις εγγράφων.
Προχωρημένες Συμβουλές για Επαγγελματική Υλοποίηση
Προσαρμοσμένα Στυλ Σχολίων
UnderlineAnnotation underline = new UnderlineAnnotation();
underline.setFontColor(16711680); // Red for urgent items
underline.setOpacity(0.5f); // Subtle highlighting
underline.setFontSize(12); // Consistent sizing
underline.setMessage("URGENT REVIEW REQUIRED");
Μεταδεδομένα Σχολίων για Παρακολούθηση
underline.setCreatedBy("john.doe@company.com");
underline.setCreatedOn(Calendar.getInstance().getTime());
underline.setMessage("Legal review required - Contract clause 4.2");
Ενσωμάτωση με Συστήματα Διαχείρισης Χρηστών
// Assume you have a method that returns the current authenticated user
String currentUser = getCurrentUser();
String userRole = getUserRole(currentUser);
// Apply role‑based styling
UnderlineAnnotation underline = new UnderlineAnnotation();
underline.setCreatedBy(currentUser);
underline.setFontColor(getRoleColor(userRole));
underline.setMessage(String.format("[%s] %s", userRole.toUpperCase(), commentText));
Επίλυση Προβλημάτων στην Παραγωγή
Παρακολούθηση Απόδοσης
Παρακολουθείτε τα παρακάτω μετρικά στην παραγωγή:
- Χρήση Heap – βεβαιωθείτε ότι καλείται το
dispose(). - Χρόνος Επεξεργασίας ανά Έγγραφο – καταγράψτε timestamps πριν/μετά το
annotator.save(). - Ποσοστό Σφαλμάτων – συλλάβετε εξαιρέσεις και κατηγοριοποιήστε τις.
Συνηθισμένα Παγίδες στην Παραγωγή
- Κλείδωμα Αρχείων – βεβαιωθείτε ότι τα ανεβασμένα αρχεία είναι κλειστά πριν το σχολιασμό.
- Συγχρονισμένες Επεξεργασίες – εφαρμόστε optimistic locking ή ελέγχους έκδοσης.
- Μεγάλα Αρχεία (> 50 MB) – αυξήστε το timeout της JVM και σκεφτείτε streaming APIs.
Καλές Πρακτικές Διαχείρισης Σφαλμάτων
try (Annotator annotator = new Annotator(documentPath)) {
UnderlineAnnotation annotation = createAnnotation();
annotator.add(annotation);
annotator.save(outputPath);
} catch (Exception e) {
logger.error("Annotation failed for document: " + documentPath, e);
// Implement appropriate error recovery
throw new DocumentProcessingException("Failed to annotate document", e);
}
Συμπέρασμα
Τώρα έχετε όλα όσα χρειάζεστε για να create clean PDF Java αρχεία και να annotate PDF in Java με υπογραμμισμένα σχόλια χρησιμοποιώντας το GroupDocs.Annotation. Θυμηθείτε:
- Διαχειριστείτε τους πόρους με try‑with‑resources ή ρητή κλήση
dispose(). - Επικυρώστε τις συντεταγμένες νωρίς για να αποφύγετε λανθασμένες υπογραμμίσεις.
- Εφαρμόστε αξιόπιστη διαχείριση σφαλμάτων για σταθερότητα στην παραγωγή.
- Εκμεταλλευτείτε στυλ βάσει ρόλου και μεταδεδομένα για να ταιριάζουν στη ροή εργασίας σας.
Τι επόμενο βήμα; Δοκιμάστε να προσθέσετε άλλους τύπους σχολίων—επισημάνσεις, σφραγίδες ή αντικαταστάσεις κειμένου—για να χτίσετε μια πλήρη λύση ανασκόπησης εγγράφων.
Συχνές Ερωτήσεις
Ε: Πώς υπογραμμίζω πολλές περιοχές κειμένου σε μία ενέργεια;
Α: Δημιουργήστε πολλά αντικείμενα UnderlineAnnotation με διαφορετικές συντεταγμένες και προσθέστε τα διαδοχικά με annotator.add().
Ε: Μπορώ να σχολιάσω εικόνες μέσα σε PDF έγγραφα;
Α: Ναι. Χρησιμοποιήστε το ίδιο σύστημα συντεταγμένων, εξασφαλίζοντας ότι τα σημεία βρίσκονται εντός των ορίων της εικόνας.
Ε: Ποιοι τύποι αρχείων εκτός PDF υποστηρίζει το GroupDocs.Annotation;
Α: Word (DOC/DOCX), Excel (XLS/XLSX), PowerPoint (PPT/PPTX) και μορφές εικόνας όπως JPEG, PNG, TIFF.
Ε: Πώς να διαχειριστώ πολύ μεγάλα έγγραφα χωρίς να εξαντλήσω τη μνήμη;
Α: Επεξεργαστείτε τα έγγραφα ένα‑ένα, αυξήστε το heap της JVM (-Xmx) και απελευθερώστε άμεσα τις στιγμές Annotator.
Ε: Μπορώ να εξάγω υπάρχοντα σχόλια από ένα έγγραφο;
Α: Ναι. Χρησιμοποιήστε annotator.get() για να λάβετε όλα τα σχόλια, έπειτα φιλτράρετε κατά τύπο, συγγραφέα ή σελίδα όπως χρειάζεται.
Τελευταία Ενημέρωση: 2026-03-24
Δοκιμασμένο Με: GroupDocs.Annotation 25.2
Συγγραφέας: GroupDocs