Donnez vie à vos documents numériques !
 

Supprimer une annotation spécifique

abracadabraPDF Forums PDF – Général Supprimer une annotation spécifique

  • Ce sujet contient 8 réponses, 3 participants et a été mis à jour pour la dernière fois par bebarth, le il y a 1 année.
  • Créateur
    Sujet
  • #72623
    michel.r06
    Participant

    Bonjour à tous,

    Petit nouveau sur le forum et débutant en formulaire PDF, je cherche a supprimer une annotation spécifique parmi 6 existantes sur une page.

    J’ai un pdf auquel j’ajoute par action “bouton” 6 annotations sur la même page (1 bouton par annotation), mais je souhaite si la personne re-clique sur le bouton supprimer l’annotation existante. J’arrive a les supprimer toutes, mais pas celle que je choisi.

    this.syncAnnotScan();
    var annots = this.getAnnots();
    if (annots!=null) {
    for (var i=annots.length-1; i>=0; i--) {
    annots.destroy();
    }
    }

    J’ai essayé plusieurs variantes, mais cela ne fonctionne pas.

    Merci de votre aide

Affichage de 8 réponses de 1 à 8 (sur un total de 8)
  • Auteur
    Réponses
  • #72624
    Merlin
    Maître des clés

    Bonjour

     

    Si je comprend bien un clic sur un bouton fait apparaitre l’annotation correspondante.

    Et il faudrait qu’un deuxième clic la fasse disparaitre, et ainsi de suite ?

     

    Peux tu partager (tout ou partie de) ce fichier ?

    #72625
    bebarth
    Maître des clés

    bonjour,
    Le plus simple est de donner un nom à l’annotation lors de sa création puis supprimer celle qui porte ce nom !

    if (event.target.buttonGetCaption()=="AJOUTER") {
    var coordonnees=event.target.rect;
    var annotation=this.addAnnot({
    page: 0,
    type: "Text",
    point: [coordonnees[2]+20,coordonnees[1]+20],
    name: "annotationNo1",
    });
    event.target.buttonSetCaption("SUPPRIMER");
    event.target.fillColor=color.red;
    event.target.textColor=color.white;
    } else {
    var lesAnnotations=this.getAnnots({nPage:0});
    for (var i=0; i<lesAnnotations.length; i++)
    if (lesAnnotations.name=="annotationNo1") lesAnnotations.destroy();
    event.target.buttonSetCaption("AJOUTER");
    event.target.fillColor=color.green;
    event.target.textColor=color.black;
    }

    @+
    😎

    • Cette réponse a été modifiée le il y a 1 année par Merlin. Raison: Ce script n'est pas complet, voir ci-dessous
    Attachments:
    You must be logged in to view attached files.
    #72627
    michel.r06
    Participant

    Bonjour,

    je viens de modifier le code et cela fonctionne.

    C’est super.

    Merci à vous

    • Cette réponse a été modifiée le il y a 1 année par michel.r06.
    #72635
    Merlin
    Maître des clés

    👍

    #72636
    bebarth
    Maître des clés

    bonjour,
    En fait il faut utiliser le code indiqué dans le fichier joint, car avec celui de cette page certains “crochets” ne s’affichent pas !


    @Merlin
    : une idée du pourquoi ?

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #72638
    michel.r06
    Participant

    Encore merci, c’est nickel.

    #72639
    Merlin
    Maître des clés

    Je suppose qu’il y a une collision avec la balise “italique” du BBcode utilisé par le forum.

    J’ai remplacé par un “k” et ça fonctionne :

     

    if (event.target.buttonGetCaption()=="AJOUTER") {
    var coordonnees=event.target.rect;
    var annotation=this.addAnnot({
    page: 0,
    type: "Text",
    point: [coordonnees[2]+20,coordonnees[1]+20],
    name: "annotationNo1",
    });
    event.target.buttonSetCaption("SUPPRIMER");
    event.target.fillColor=color.red;
    event.target.textColor=color.white;
    } else {
    var lesAnnotations=this.getAnnots({nPage:0});
    for (var k=0; k<lesAnnotations.length; k++)
    if (lesAnnotations[k].name=="annotationNo1") lesAnnotations[k].destroy();
    event.target.buttonSetCaption("AJOUTER");
    event.target.fillColor=color.green;
    event.target.textColor=color.black;
    }

    #72641
    bebarth
    Maître des clés

    👍

Affichage de 8 réponses de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.