48 votes

"Console.log" avec Photoshop Scripting - ExtendedScript Toolkit

Je fais un peu de scripting Photoshop pour la première fois et ce serait génial d'avoir une fonction console.log-like pour afficher les valeurs d'array et d'objet dans la console Javascript de l'application ExtendScript Toolkit.

Existe-t-il une fonction équivalente ?

70voto

Daniel Serodio Points 1328

$.writeln() est ce que vous cherchez. Consultez le Guide des outils JavaScript (PDF) pour plus de détails.

0 votes

Cela ne fonctionne pas en utilisant l'extension xtools pour Photoshop CS6.

0 votes

Ne produit rien sur Adobe Extend Script 4 !

0 votes

Je viens d'essayer dans ExtendScript CS6 et ça fonctionne superbement.

4voto

Cas Points 59

Je suis en train d'utiliser ExtendScript Toolkit version 4.0, et l'utilisation de _print('foo') semble faire l'affaire.

1voto

oelna Points 395

Connectez-vous à un fichier à la place

Je sais que c'est vieux, mais j'avais récemment besoin de journaliser certaines valeurs d'un script InDesign et je voudrais partager ma "solution".

Mon premier problème était que je ne savais même pas où va la sortie produite par $.writeln(). J'ai donc eu recours à une fonction rudimentaire qui enregistre dans un fichier dans le répertoire du document. Peut-être que cela sera utile à quelqu'un. Je suppose que cela pourrait fonctionner également pour Photoshop ou d'autres environnements ExtendScript.

J'ai appris qu'ExtendScript ne prend pas en charge les méthodes JSON, donc j'ai utilisé un polyfill. Il suffit de mettre le fichier (dans mon cas json2.js) dans le même répertoire que votre .jsx.

#include "json2.js"; // inclure le fichier de polyfill

function log (input) {
    if(!debug) return;
    if(!JSON || !JSON.stringify) return;

    var now = new Date();
    var output = JSON.stringify(input);

    $.writeln(now.toTimeString() + ": " + output);

    var logFile = File(app.activeDocument.filePath + "/log.txt");
    logFile.open("a");
    logFile.writeln(now.toTimeString() + ": " + output);
    logFile.close();
}

Utilisation

var debug = true;

log("abc 123");
log([1, 3, 4343, "ddddd", null, false]);

Utilisez la variable debug pour activer ou désactiver rapidement la sortie.

1voto

justingordon Points 1646
write("n'importe quel message");

C'est ce qui fonctionne dans XTools pour Photoshop. Je trouve que le débogueur Photoshop plante tout le temps dans CS6 sur Mac OSX.

Vous pouvez en savoir plus sur XTools ici: http://ps-scripts.sourceforge.net/xtools.html.

C'est fabuleux!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X