Annotations basées sur du texte utilisant Java
Les annotations textuelles permettent aux réviseurs et aux développeurs d’ajouter des notes interactives, des surlignages et des balises aux documents PDF sans altérer le contenu principal. Cette section couvre cinq types d’annotations pratiques utilisés dans les flux de travail de révision de documents, les scénarios de conformité et les cycles de commentaires collaboratifs.
Référence rapide : types d’annotations
Cet article couvre les types d’annotations textuelles suivants :
- Texte libre : zones de texte modifiables pour ajouter des notes et des commentaires
- Point culminant : accent visuel sur les passages de texte importants
- Biffé : marquer le texte pour suppression ou révision lors de la révision
- Squiggly : soulignement ondulé pour indiquer des erreurs ou des problèmes
- Souligné : soulignement traditionnel avec précision en quatre points en option
Ajouter, obtenir et supprimer des annotations de texte libre
Les annotations de texte libre agissent comme des zones de texte flottantes qui peuvent être modifiées sans affecter la structure du document. Utilisez ces exemples pour ajouter des zones de commentaires, inspecter leurs propriétés ou les supprimer.
Ajouter des annotations de texte libre
- Ouvrez le PDF source Document.
- Créez une FreeTextAnnotation avec un rectangle et des paramètres d’apparence.
- Ajoutez l’annotation à la page et enregistrez le document.
public static void freeTextAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
FreeTextAnnotation freeTextAnnotation = new FreeTextAnnotation(
document.getPages().get_Item(1),
new Rectangle(299, 713, 308, 720, true),
new DefaultAppearance());
freeTextAnnotation.setTitle("Aspose User");
freeTextAnnotation.setColor(Color.getLightGreen());
document.getPages().get_Item(1).getAnnotations().add(freeTextAnnotation);
document.save(outputFile.toString());
}
}
Obtenir des annotations de texte libre
- Ouvrez le PDF source Document.
- Parcourez les annotations sur la page et filtrez par AnnotationType.FreeText.
- Récupérez les propriétés ou les limites de l’annotation.
public static void freeTextAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.FreeText) {
System.out.println(annotation.getRect());
}
}
}
}
Supprimer les annotations de texte libre
- Ouvrez le PDF source Document.
- Recherchez des annotations de texte libre en parcourant les annotations de page et en filtrant par type.
- Ajoutez les annotations correspondantes à une liste de suppression et supprimez-les de la page.
- Enregistrez le document mis à jour.
public static void freeTextAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.FreeText) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
Ajouter, obtenir et supprimer des annotations de surlignage
Les annotations de surlignage marquent les passages importants avec une superposition semi-transparente. Utilisez ces exemples pour créer des surlignages pour la révision de documents, localiser les surlignages existants et nettoyer le balisage.
Ajouter des annotations de surlignage
- Ouvrez le PDF source Document.
- Créez une HighlightAnnotation avec un rectangle définissant la zone de surbrillance.
- Ajoutez l’annotation à la page et enregistrez le document.
public static void textHighlightAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HighlightAnnotation highlightAnnotation = new HighlightAnnotation(
document.getPages().get_Item(1),
new Rectangle(300, 750, 320, 770, true));
document.getPages().get_Item(1).getAnnotations().add(highlightAnnotation);
document.save(outputFile.toString());
}
}
Obtenir des annotations de surlignage
- Ouvrez le PDF source Document.
- Parcourez les annotations et filtrez par AnnotationType.Highlight.
- Lisez les propriétés de l’annotation telles que les limites ou la couleur.
public static void textHighlightAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Highlight) {
System.out.println(annotation.getRect());
}
}
}
}
Supprimer les annotations de surlignage
- Ouvrez le PDF source Document.
- Collectez les annotations de surlignage en filtrant les annotations par type.
- Supprimez chaque annotation de la page.
- Enregistrez le document mis à jour.
public static void textHighlightAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Highlight) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
Ajouter, obtenir et supprimer des annotations barrées
Les annotations barrées barrent le texte pour indiquer une suppression, un rejet ou une révision. Utilisez ces exemples pour appliquer un balisage barré lors de la révision de documents, rechercher du texte marqué et supprimer des annotations barrées.
Ajouter des annotations barrées
- Ouvrez le PDF source Document.
- Créez une StrikeOutAnnotation avec un rectangle, un titre et une couleur.
- Ajoutez l’annotation à la page et enregistrez le document.
public static void textStrikeoutAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
StrikeOutAnnotation strikeoutAnnotation = new StrikeOutAnnotation(
document.getPages().get_Item(1),
new Rectangle(299.988, 713.664, 308.708, 720.769, true));
strikeoutAnnotation.setTitle("Aspose User");
strikeoutAnnotation.setSubject("Inserted text 1");
strikeoutAnnotation.setFlags(AnnotationFlags.Print);
strikeoutAnnotation.setColor(Color.getBlue());
document.getPages().get_Item(1).getAnnotations().add(strikeoutAnnotation);
document.save(outputFile.toString());
}
}
Obtenir des annotations barrées
- Ouvrez le PDF source Document.
- Parcourez les annotations et filtrez par AnnotationType.StrikeOut.
- Lisez les métadonnées ou les limites des annotations.
public static void textStrikeoutAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.StrikeOut) {
System.out.println(annotation.getRect());
}
}
}
}
Supprimer les annotations barrées
- Ouvrez le PDF source Document.
- Collectez les annotations barrées en les filtrant par type.
- Supprimez chaque annotation de la page.
- Enregistrez le document mis à jour.
public static void textStrikeoutAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.StrikeOut) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
Ajouter, obtenir et supprimer des annotations ondulées
Les annotations ondulées (soulignés ondulés) mettent en évidence les erreurs potentielles, les problèmes ou les éléments nécessitant une attention particulière. Utilisez ces exemples pour marquer le texte problématique, inspecter les annotations ondulées et les supprimer des documents.
Ajouter des annotations ondulées
- Ouvrez le PDF source Document.
- Créez une SquigglyAnnotation avec un rectangle et un titre.
- Ajoutez l’annotation à la page et enregistrez le document.
public static void textSquigglyAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
Page page = document.getPages().get_Item(1);
SquigglyAnnotation squigglyAnnotation = new SquigglyAnnotation(
page,
new Rectangle(67, 317, 261, 459, true));
squigglyAnnotation.setTitle("John Smith");
squigglyAnnotation.setColor(Color.getBlue());
page.getAnnotations().add(squigglyAnnotation);
document.save(outputFile.toString());
}
}
Obtenir des annotations ondulées
- Ouvrez le PDF source Document.
- Parcourez les annotations et filtrez par AnnotationType.Squiggly.
- Lisez les limites des annotations ou les métadonnées.
public static void textSquigglyAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Squiggly) {
System.out.println(annotation.getRect());
}
}
}
}
Supprimer les annotations ondulées
- Ouvrez le PDF source Document.
- Collectez des annotations ondulées en les filtrant par type.
- Supprimez chaque annotation de la page.
- Enregistrez le document mis à jour.
public static void textSquigglyAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Squiggly) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
Ajouter, obtenir et supprimer des annotations soulignées
Les annotations soulignées mettent l’accent sur les passages importants avec un soulignement traditionnel. Utilisez ces exemples pour créer des soulignements, lire le contenu du texte marqué et supprimer les annotations soulignées des pages.
Ajouter des annotations soulignées
- Ouvrez le PDF source Document.
- Créez une UnderlineAnnotation avec un rectangle et une couleur.
- Ajoutez l’annotation à la page et enregistrez le document.
public static void textUnderlineAnnotationAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
UnderlineAnnotation underlineAnnotation = new UnderlineAnnotation(
document.getPages().get_Item(1),
new Rectangle(299.988, 713.664, 308.708, 720.769, true));
underlineAnnotation.setTitle("Aspose User");
underlineAnnotation.setSubject("Inserted Underline 1");
underlineAnnotation.setFlags(AnnotationFlags.Print);
underlineAnnotation.setColor(Color.getBlue());
document.getPages().get_Item(1).getAnnotations().add(underlineAnnotation);
document.save(outputFile.toString());
}
}
Obtenir des annotations soulignées
- Ouvrez le PDF source Document.
- Parcourez les annotations et filtrez par AnnotationType.Underline.
- Lire les propriétés ou les limites des annotations.
public static void textUnderlineAnnotationGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Underline) {
System.out.println(annotation.getRect());
}
}
}
}
Supprimer les annotations soulignées
- Ouvrez le PDF source Document.
- Collectez les annotations soulignées en les filtrant par type.
- Supprimez chaque annotation de la page.
- Enregistrez le document mis à jour.
public static void textUnderlineAnnotationDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Underline) {
toDelete.add(annotation);
}
}
for (Annotation annotation : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(annotation);
}
document.save(outputFile.toString());
}
}
Ajouter une annotation soulignée avec des groupes de quatre points
Cet exemple définit explicitement la zone de soulignement via des groupes de quatre points dérivés d’un rectangle.
- Ouvrez le PDF source Document.
- Créez une UnderlineAnnotation et calculez ses groupes de quatre points.
- Ajoutez l’annotation à la page et enregistrez le document.
public static void textUnderlineWithQuadPointsAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
Rectangle rect = new Rectangle(299.988, 713.664, 308.708, 720.769, true);
UnderlineAnnotation underlineAnnotation = new UnderlineAnnotation(
document.getPages().get_Item(1), rect);
underlineAnnotation.setTitle("Aspose User");
underlineAnnotation.setSubject("Inserted Underline with Quad Points");
underlineAnnotation.setFlags(AnnotationFlags.Print);
underlineAnnotation.setColor(Color.getBlue());
underlineAnnotation.setQuadPoints(new com.aspose.pdf.Point[]{
new com.aspose.pdf.Point(rect.getLLX(), rect.getLLY()),
new com.aspose.pdf.Point(rect.getURX(), rect.getLLY()),
new com.aspose.pdf.Point(rect.getURX(), rect.getURY()),
new com.aspose.pdf.Point(rect.getLLX(), rect.getURY())
});
document.getPages().get_Item(1).getAnnotations().add(underlineAnnotation);
document.save(outputFile.toString());
}
}
Obtenir le texte marqué à partir des annotations soulignées
Récupérez le contenu du texte réel couvert par les annotations soulignées. Ces exemples montrent deux approches : lire le texte marqué complet comme une seule chaîne ou traiter des fragments de texte individuellement pour une analyse détaillée.
- Ouvrez le PDF source Document.
- Parcourez les annotations soulignées sur la page.
- Lisez soit
getMarkedText()ougetMarkedTextFragments()et affichez les résultats.
public static void textUnderlineMarkedTextGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Underline) {
UnderlineAnnotation ua = (UnderlineAnnotation) annotation;
System.out.println("Marked text: " + ua.getMarkedText());
}
}
}
}
public static void textUnderlineMarkedFragmentsGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Underline) {
UnderlineAnnotation ua = (UnderlineAnnotation) annotation;
for (TextFragment fragment : ua.getMarkedTextFragments()) {
System.out.println("Fragment text: " + fragment.getText());
}
}
}
}
}
Supprimer les annotations soulignées par titre
Supprimez les annotations de manière sélective en filtrant sur les propriétés des métadonnées telles que le titre. Cette approche permet un nettoyage ciblé des annotations par auteur ou objectif.
- Ouvrez le PDF source Document.
- Filtrez les annotations soulignées par titre.
- Supprimez les annotations correspondantes et enregistrez le document mis à jour.
public static void textUnderlineByTitleDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<UnderlineAnnotation> toDelete = new ArrayList<>();
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Underline) {
UnderlineAnnotation ua = (UnderlineAnnotation) annotation;
if ("Aspose User".equals(ua.getTitle())) {
toDelete.add(ua);
}
}
}
for (UnderlineAnnotation ua : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(ua);
}
document.save(outputFile.toString());
}
}
Ajouter et aplatir une annotation soulignée
Convertissez une annotation soulignée interactive en contenu de page permanent en l’aplatissant. Cela empêche toute modification ultérieure tout en préservant l’apparence soulignée dans n’importe quelle visionneuse PDF.
- Ouvrez le PDF source Document.
- Ajoutez une UnderlineAnnotation à la page.
- Appelez
flatten()sur l’annotation et enregistrez le fichier de sortie.
public static void textUnderlineFlattenAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
UnderlineAnnotation underlineAnnotation = new UnderlineAnnotation(
document.getPages().get_Item(1),
new Rectangle(299.988, 713.664, 308.708, 720.769, true));
underlineAnnotation.setTitle("Aspose User");
underlineAnnotation.setSubject("Inserted Underline to Flatten");
underlineAnnotation.setFlags(AnnotationFlags.Print);
underlineAnnotation.setColor(Color.getBlue());
document.getPages().get_Item(1).getAnnotations().add(underlineAnnotation);
underlineAnnotation.flatten();
document.save(outputFile.toString());
}
}