Bonjour,

j'ai un problème avec un script qui me permet de créer un calque texte sous photoshop avec seulement une partie du nom du fichier (le prénom seulement pour un nom de fichier du style : NOM Prénom classe.jpg) :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
////////////////////////////////////////////////////////////////////////////
///// Script de crÈation d'un calque texte 
///// contenant le nom du fichier utilisÈ
///// 
///// © CÈdric Girard - <a href="http://blog.aube-nature.com" target="_blank">http://blog.aube-nature.com</a>
/////////////////////////////////////////////////////////////////////////////
 
#target photoshop					// Script dÈdiÈ ‡ Photoshop
 
app.bringToFront();					// On place Photoshop au premier plan
displayDialogs = DialogModes.NO;	// DÈsactivation des boÓtes de dialogue
 
// Sauvegarde des unitÈs de mesure en cours, et passage en pixels par dÈfaut
var oRulerUnits = preferences.rulerUnits;
var oTypeUnits = preferences.typeUnits;
preferences.rulerUnits = Units.PIXELS;
preferences.typeUnits = TypeUnits.PIXELS;
 
try
{
	var DocActif = activeDocument;		// Document actif (image ouverte au premier plan)
 
	// DÈfinition d'une variable dÈfinissant une couleur blanche, que nous utiliseront plus loin
    var colorBlanc = new SolidColor();
    colorBlanc.rgb.red = 255;
	colorBlanc.rgb.blue = 255;
	colorBlanc.rgb.green = 255;
 
    // On crÈe un nouveau calque texte
    var oLayer = DocActif.artLayers.add();
    oLayer.kind = LayerKind.TEXT;		// Type de calque = calque de texte
    oLayer.name = "IPTC - Description";		// Nom du calque
    var oTextItem = oLayer.textItem;	// On dÈfinit une variable qui permettra de simplifier les accËs au calque de texte crÈÈ
    oTextItem.font = "Century gothic";	// DÈfinition de la police
    oTextItem.size = 14;				// DÈfinition de la taille de police
	oTextItem.color = colorBlanc;		// DÈfinition de la couleur du texte
 
////////////////////////////////////////////////////////////////////////////
////////// ZONE MODIFIABLE (insertion de votre texte)
////////////////////////////////////////////////////////////////////////////
//////////
function prenomExtension(fileName) {
 
 
  var m = fileName.match(/^\s*(([A-Z-]+\s+)+)([^0-9]+)(\s+[A-Za-z0-9_-]+)?\s*(\.[A-Za-z0-9_]{1,5})?$/);
 
 
  if(m) {
 
    return m[3]; // m[1] pour le nom, m[4] pour le nombre, tolère les noms composés (DUPONT ROBERT Pierre Charles 301), les noms de famille doivent être en majuscules
 
  }
 
  return fileName.replace(/\.[a-z0-9]{1,5}$/ig, '');
 
}
 
 
 
oTextItem.contents = prenomExtension(DocActif.name); // Contenu du texte 
 
 
//////////
//////////
////////////////////////////////////////////////////////////////////////////
 
    // Centrage du calque de texte au milieu de la compo (par dÈfaut)
    var LargeurTexte  = (oLayer.bounds[2] - oLayer.bounds[0]);	// Largeur du calque de texte
    var HauteurTexte = (oLayer.bounds[3] - oLayer.bounds[1]);	// hauteur du calque de texte
    oTextItem.position = [(DocActif.width-LargeurTexte) / 2, (DocActif.height-HauteurTexte) / 2];
 }
catch(oErreur)
{
	// Une erreur est survenue...
	alert( "Une erreur est survenue : " + oErreur.description)
}
 
// Remise en place des unitÈs de mesure initiales
preferences.rulerUnits = oRulerUnits;
preferences.typeUnits = oTypeUnits;
 
 
////////// FIN DU SCRIPT ///////////////////////////////////////////////////
Mon problème est quand il y a une lettre accentué en majuscule dans le nom et quand la classe est inscrite avec des lettres.

Merci si vous pouvez m'aider

Bien à vous

Philippe