Donnez vie à vos documents numériques !
 

JavaScript : Supprimer les textes d’un tableau contenant un préfixe.

abracadabraPDF Forums PDF – Général JavaScript : Supprimer les textes d’un tableau contenant un préfixe.

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46607
    muzan
    Membre

    Bonjour à tous !

    Je m’excuse d’avance s’il y a eu un Topic similaire sur le forum.

    Comme le titre l’indique je souhaiterai avec JavaScript supprimer les textes d’un tableau contenant un préfixe.

    Par exemple tous les textes d’un tableau contenant le préfixe “Yy”.

    J’utilise pour exécuter le script sur mon document PDF, le logiciel Foxit PhantomPDF sous Windows 10.

    Pour mieux comprendre pourquoi je voudrais supprimer les textes d’un tableau contenant un préfixe, je vais vous expliquer un petit peu mon travail :)
    J’ai tout d’abord sur Word à l’aide d’une macro générer un tableau pré-remplie que j’exporte par la suite en PDF sur Foxit PhantomPDF.
    Voici le tableau de base exporté en PDF.
    n291.png

    Par la suite, j’exécute sur Foxit PhantomPDF la reconnaissance des champs de formulaire pour faire apparaître tous les champs de mon tableau.
    Comme ceci :

    zd0t.png

    J’ai ainsi des champs à chaque cellule et à l’aide d’une fonction JavaScript (que j’ai) je supprime les champs ne contenant pas le préfixe “Yy”.

    Voici le code pour faire ceci :

    Code:
    for (var i=this.numFields-1; i>=0; i–) {
        var f = this.getField(this.getNthFieldName(i));
        if (f==null) continue;
        if (/^Yy/.test(f.name)) continue;
        this.removeField(f.name);
    }

    A l’aide de ce code les champs du tableau ne contenant pas le préfixe “Yy” sont automatiquement supprimés.
    Comme ceci :
    c9vc.png

    Mais le problème est que les libellés devant les champs conservés (contenant “Yy”) sont toujours présents (par exemple ici Yypeugeot/Yyrenault/Yycitroen).

    Et c’est ceci que je souhaite supprimer afin de garder que les champs conservés.

    Je vous ai joint en pièce jointe un exemple de tableau en PDF qui contient des textes avec le préfixe “Yy” que je voudrais supprimer.

    Toute aide serait la bienvenue, et ne soyez pas trop méchant avec moi, ce sera mon premier code Javascript  :Smiley00: .
    En tout cas, je souhaite une très bonne journée à tous les lecteurs de mon topic.

Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Auteur
    Réponses
  • #69259
    muzan
    Membre

    EDIT : j’ai trouvé sur internet un peu ce que je voulais faire et je voulais adapter à mon travail.
    Mais le code ne fonctionne pas sur ma console JS sur Foxit PhantomPDF.

    Voici le code :

    Code:
    // Fonction pour supprimer tous les libellés devant les champs contenant un préfixe “Yy”
    // récup. de toutes les const oCells = document.querySelectorAll(“table td”);
    const search = “Yy”;
    // la boucle de recherche
    for (let cell of oCells) {
      const text = cell.textContent;      // lecture du contenu brut
      if (text.startsWith(search)) {      // occurrence trouvée
        cell.textContent = ” “;      // on remplace le contenu par ce que l’on veut ou par rien
      }
    }

    Et voici ce que j’obtiens sur ma console :

    famg.png

    Si quelqu’un saurait comment résoudre le problème, je lui serai très reconnaissant  :Smiley01:

    #69260
    muzan
    Membre

    Il y a personne qui pourrait m’aider ?  :Smiley11:

    #69261
    bebarth
    Maître des clés

    bonjour,
    D’après ce que je vois, le texte que tu cherches à modifier est en dur sur ton fichier et il est malheureusement impossible d’effectuer cette opération via JavaScript sur les fichiers pdf.
    @+
    :bonjour:

    #69262
    Merlin
    Maître des clés

    Bonjour

    On ne peut pas modifier les noms de champs avec JavaScript. Partant de là, à mon avis il serait plus simple de modifier le processus de base.

    Je vois que les champs situés à gauche commencent par une capitale (Renault, Citroen…), contrairement à ceux de droite (renault, citroen…), donc l’idée serait de supprimer la balise Yy puisqu’on a déjà une différence.
    Ensuite avec JavaScript on pourrait ne supprimer que les champs dont le nom commence par une lettre minuscule (ou l’inverse), il n’y aurait pas grand-chose à modifier dans ton script.

    #69263
    Merlin
    Maître des clés

    Il y a personne qui pourrait m’aider ?  :Smiley11:

    Je ne célèbre pas les fêtes religieuses mais je respecte les ponts et les jours fériés.
    :Smiley15:

    #69264
    bebarth
    Maître des clés

    Salut Merlin,
    Tu ne serais pas en Ardèche ?
    :bonjour:

    #69265
    Merlin
    Maître des clés

    Tu ne serais pas en Ardèche ?

    Photo prise à quelques dizaines de mètres au-dessus de la rivière du même nom
    :Smiley03:

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