음, 글자 수 계산을위한 무차별 전략이 있습니다. 문서의
문자
textStyleRange를 반복하고 적용된 글꼴을 확인합니다. 편집 : textStyleRanges를 사용하도록 업데이트되었습니다. 모든 캐릭터를 지나는 것보다 훨씬 빠릅니다.
var document = app.open(new File(Folder.desktop.fsName + "/test/test.indd"));
try {
var fontMultiset = countCharsInFonts(document);
// For each font, display its character count.
var fonts = document.fonts.everyItem().getElements();
for (var i = 0; i < fonts.length; i++) {
var fontName = fonts[i].fullName;
$.writeln(fontName + ": " + fontMultiset[fontName]);
}
}
finally {
document.close();
}
function countCharsInFonts(document) {
// Create the font multiset.
var fontMultiset = {
add: function add(fontName, number) {
if (this.hasOwnProperty(fontName)) {
this[fontName] += number;
}
else {
this[fontName] = number;
}
},
};
// For every textStyleRange in the document, add its applied font to the multiset.
var stories = document.stories.everyItem().getElements();
for (var i = 0; i < stories.length; i++) {
var story = stories[i];
var textStyleRanges = story.textStyleRanges.everyItem().getElements();
for (var j = 0; j < textStyleRanges.length; j++) {
fontMultiset.add(textStyleRanges[j].appliedFont.fullName, textStyleRanges[j].length);
}
}
// For any fonts that aren't applied in the document, set the character count to 0.
var fonts = document.fonts.everyItem().getElements();
for (var i = 0; i < fonts.length; i++) {
var fontName = fonts[i].fullName;
if (!fontMultiset.hasOwnProperty(fontName)) {
fontMultiset[fontName] = 0;
}
}
return fontMultiset;
}
이 스크립트를 사용해보세요. 설명은 독일어로되어 있습니다. 문서에 사용 된 모든 글꼴을 내 보냅니다. http://indesign.hilfdirselbst.ch/ausgabe-export/liste-mit-schriften-im-dokument-ausgeben.html – fabianmoronzirfas
스크립트는 글꼴의 문자 수와 페이지를 내보내지 만 그렇지 않으면 유용한 스크립트를 내 보냅니다. 고맙습니다! – wna