JavaScript : Supprimer les textes d'un tableau contenant un préfixe.  (Lu 433 fois) Partager ce sujet Imprimer

1 B


muzan  21 mai 2021 : 11:43

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.


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 :



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 :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 :


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.

IP archivée


muzan  21 mai 2021 : 18:39

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 :
// Fonction pour supprimer tous les libellés devant les champs contenant un préfixe "Yy"
// récup. de toutes les <td>
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 :




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

IP archivée


muzan  22 mai 2021 : 16:48

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

IP archivée


bebarth  22 mai 2021 : 18:38

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:

IP archivée


Merlin  24 mai 2021 : 12:29

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.

IP archivée


Merlin  24 mai 2021 : 12:32

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:

IP archivée


bebarth  24 mai 2021 : 12:40

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

IP archivée


Merlin  25 mai 2021 : 15:53

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:

IP archivée