Skip to content

Instantly share code, notes, and snippets.

View UskeS's full-sized avatar

Yusuke S. UskeS

View GitHub Profile
@UskeS
UskeS / sampleSUIProgressBar.jsx
Created September 22, 2018 04:31
[ExtendScript] SUIでプログレスバーを表示するサンプル
#targetengine session
var fonts = app.fonts;
var fontLength = fonts.length;
var fontList = [];
var dlg = new Window("palette");
dlg.add("staticText", undefined, "フォントを読み込んでいます...");
dlg.alignChildren = "fill";
var pb = dlg.add("progressbar", undefined, 0, fontLength);
@UskeS
UskeS / exportCompFontProp.jsx
Last active January 6, 2019 14:44
[InDesign][extendScript] 合成フォントの設定を書き出し
!function() {
var doc = app.activeDocument;
var compFonts = doc.compositeFonts;
var result = [];
for (var k=1; k<compFonts.length; k++) {
result.push("# " + compFonts[k].name);
var cfEnt = compFonts[k].compositeFontEntries;
for (var i=0; i<cfEnt.length; i++) {
result.push("## " + cfEnt[i].name);
result.push("* フォント:"+cfEnt[i].appliedFont+"/"+cfEnt[i].fontStyle);
var doc = app.activeDocument;
var pst = doc.allParagraphStyles;
pst.splice(0, 2);
var pstNameList = getNames(pst);
var result = {}; //エラー結果を入れる配列
for (var i=0, ilen=pstNameList.length; i<ilen; i++) {
for (var k=0, klen=pstNameList.length; k<klen; k++) {
if (i === k) {
continue;
@UskeS
UskeS / pasteOnSamePlaceAftSpread.jsx
Last active January 13, 2019 05:02
[InDesign][ExtendScript] 選択したオブジェクトを以降のスプレッド全てに同位置に複製する
!function (){
//状態チェック
if (app.documents.length === 0) {
alert("ドキュメントを開いてから実行してください");
return;
}
if (app.selection.length === 0) {
alert("オブジェクトを選択してから実行してください");
return;
}
@UskeS
UskeS / array_filter.jsxinc
Last active April 22, 2019 05:57
ECMAScript 3に実装するArray.filter
// Production steps of ECMA-262, Edition 5.1, 15.4.4.20
// https://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.20
// from http://javascript.boxsheep.com/polyfills/Array-prototype-filter/
if (!Array.prototype.filter) {
Array.prototype.filter = function(callbackfn , thisArg) {
"use strict";
var O = Object(this),
lenValue = O.length,
len = lenValue >>> 0,
T,
@UskeS
UskeS / exportNestedGrepStyleExpressions.jsx
Created April 26, 2019 05:57
ドキュメントの全段落スタイルから正規表現スタイルを書き出す
var doc = app.activeDocument;
var pst = doc.allParagraphStyles;
var len = pst.length;
var tgtFolder = Folder.selectDialog("書き出し先のフォルダを選択");
for (var i=1; i<len; i++) {
if (pst[i].parent.constructor.name === "ParagraphStyleGroup") {
exportTxtFile(pst[i].parent.name+" >>> "+pst[i].name, getNestedStylesExp(pst[i]));
} else {
exportTxtFile(pst[i].name, getNestedStylesExp(pst[i]));
}
@UskeS
UskeS / addTextFromUnicode.jsx
Created April 26, 2019 10:02
選択した場所に指定した範囲のコードポイントの文字を連続して挿入する
var doc = app.activeDocument;
var sel = doc.selection[0];
var startChar = parseInt("21", 16); //入力する文字の最初のコードポイント
var endChar = parseInt("24ff", 16); //入力する文字の最後のコードポイント
app.doScript(function(){
while(startChar < endChar) {
sel.contents += String.fromCharCode(startChar);
startChar++;
}
}, ScriptLanguage.JAVASCRIPT, null, UndoModes.ENTIRE_SCRIPT);
@UskeS
UskeS / replaceLastObject.jsx
Last active July 31, 2019 08:37
最後に選択したオブジェクトを、他に選択したオブジェクトと入れ替える(左上基準)
var doc = app.activeDocument;
var sel = doc.selection;
var tgt = sel[sel.length-1];
var newSelection = [];
app.doScript(main, ScriptLanguage.JAVASCRIPT, null, UndoModes.ENTIRE_SCRIPT);
function main(){
var tempRuler = doc.viewPreferences.rulerOrigin;
doc.viewPreferences.rulerOrigin = RulerOrigin.SPREAD_ORIGIN;
for (var i=sel.length-2; i>=0; i--) {
@UskeS
UskeS / Code.gs
Created August 23, 2019 01:53 — forked from takanakahiko/Code.gs
ふりがなGAS
var nsDefault = XmlService.getNamespace("urn:yahoo:jp:jlp:FuriganaService");
function parseXml() {
var url = 'http://jlp.yahooapis.jp/FuriganaService/V1/furigana';
var params = [
'appid=XXXXXXXXXXXXXXXXXXXX',
'sentence=' + encodeURIComponent('初音ミクさんを忘れないでください'),
'grade=1'
]
var xml = UrlFetchApp.fetch(url + '?' + params.join('&') ).getContentText();
@UskeS
UskeS / array_some.js
Created October 31, 2019 09:42
ES3用 someメソッドのポリフィル
// Production steps of ECMA-262, Edition 5, 15.4.4.17
// Reference: http://es5.github.io/#x15.4.4.17
if (!Array.prototype.some) {
Array.prototype.some = function(fun/*, thisArg*/) {
'use strict';
if (this == null) {
throw new TypeError('Array.prototype.some called on null or undefined');
}