accent avec un script en Javascript
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:
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