forked from yyued/ENMetadataCleaner
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathENMetadataCleaner.jsx
executable file
·64 lines (49 loc) · 2.61 KB
/
ENMetadataCleaner.jsx
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
function deleteDocumentAncestorsMetadata() {
if(String(app.name).search("Photoshop") > 0) {
if(!documents.length) {
alert("There are no open documents. Please open a file to run this script.")
return;
}
if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
var xmp = new XMPMeta( activeDocument.xmpMetadata.rawData);
xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, "DocumentAncestors");
app.activeDocument.xmpMetadata.rawData = xmp.serialize();
function clearDocumentAncestorsForAllLayers(doc) {
try {
if (doc == undefined) {
return;
}
for (var i = 0; i < doc.layers.length; i++) {
var curLayer = doc.layers[i];
if (curLayer.typename === "ArtLayer") {
if (curLayer.kind == "LayerKind.SMARTOBJECT") {
if (curLayer.name.indexOf('\u200B\u200B\u200B') > 0) {
continue;
}
curLayer.name = curLayer.name + '\u200B\u200B\u200B';
app.activeDocument.activeLayer = curLayer;
var idplacedLayerEditContents = stringIDToTypeID("placedLayerEditContents");
var desc10 = new ActionDescriptor();
executeAction(idplacedLayerEditContents, desc10, DialogModes.NO);
//
var xmp = new XMPMeta(activeDocument.xmpMetadata.rawData);
xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, "DocumentAncestors");
app.activeDocument.xmpMetadata.rawData = xmp.serialize();
// $.writeln(app.activeDocument.name + "是否需要关闭窗口:" + close);
if (app.activeDocument !== mainDocument) {
app.activeDocument.close(SaveOptions.SAVECHANGES);
}else{
app.activeDocument.save();
}
}
} else {
clearDocumentAncestorsForAllLayers(curLayer);
}
}
} catch (e) {}
}
clearDocumentAncestorsForAllLayers(app.activeDocument);
}
}
var mainDocument = app.activeDocument;
deleteDocumentAncestorsMetadata();