質問
I want to replace the first 6 characters of the file name with other text on the page.
Hello, I have the following code. This code replaces the places in the document that say "<Name>" with the document name ai. I want this code to only take the 6 characters in the file name. Can anyone help me?
//#Illustrator
/*
PageIndexer.jsx for Adobe Illustrator
Description: numbering pages or artboards, displaying the file name, and incorporating the current date.
Date: July, 2023
Author: Katja Bjerrum, email: katja@productivista.com , www.productivista.com
============================================================================
NOTICE:
This script is provided "as is" without warranty of any kind.
Free to use, not for sale.
============================================================================
Released under the MIT license.
http://opensource.org/licenses/mit-license.php
============================================================================
Please contact me if you need some help or customization of this script
at katja@productivista.com
*/
var doc = app.activeDocument;
app.coordinateSystem = CoordinateSystem.DOCUMENTCOORDINATESYSTEM;
var sel = app.activeDocument.selection;
//var lay = doc.layers.getByName('Index');
var ab = doc.artboards;
var dateArr = ['<wd>', '<dd>', '<mm>', '<yyyy>', ' <yy>', '<WD>', '<DD>', '<MM>', '<YYYY>', '<YY>'];
var nameArr = ['<name>', '<nameex>', '<NAME>', '<NAMEEX>'];
var pageArr = ['<p>', '<ps>', '<P>', '<PS>'];
var languageMappings = {
'LanguageType.ENGLISH': {
'Month': ['January', 'February', 'March', 'April',
'May', 'June', 'July', 'August',
'September', 'October', 'November', 'December'],
'WeekDay': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
},
'LanguageType.RUSSIAN': {
'Month': ['января', 'февраля', 'марта', 'апреля',
'мая', 'июня', 'июля', 'августа',
'сентября', 'октября', 'ноября', 'декабря'],
'WeekDay': ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота']
},
'LanguageType.BULGARIAN': {
'Month': ['Януари', 'Февруари', 'Март', 'Април', 'Май', 'Юни', 'Юли', 'Август', 'Септември', 'Октомври', 'Ноември', 'Декември'],
'WeekDay': ['Неделя', 'Понеделник', 'Вторник', 'Сряда', 'Четвъртък', 'Петък', 'Събота']
},
'LanguageType.CROATIAN': {
'Month': ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenog', 'prosinca'],
'WeekDay': ['Nedjelja', 'Ponedjeljak', 'Utorak', 'Srijeda', 'Četvrtak', 'Petak', 'Subota']
},
'LanguageType.CZECH': {
'Month': ['Leden', 'Únor', 'Březen', 'Duben',
'Květen', 'Červen', 'Červenec', 'Srpen',
'Září', 'Říjen', 'Listopad', 'Prosinec'],
'WeekDay': ['Neděle', 'Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota']
},
'LanguageType.DANISH': {
'Month': ['Januar', 'Februar', 'Marts', 'April',
'Maj', 'Juni', 'Juli', 'August',
'September', 'Oktober', 'November', 'December'],
'WeekDay': ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag']
},
'LanguageType.DUTCH': {
'Month': ['Januari', 'Februari', 'Maart', 'April',
'Mei', 'Juni', 'Juli', 'Augustus',
'September', 'Oktober', 'November', 'December'],
'WeekDay': ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag']
},
'LanguageType.ESTONIAN': {
'Month': ['Jaanuar', 'Veebruar', 'Märts', 'Aprill',
'Mai', 'Juuni', 'Juuli', 'August',
'September', 'Oktoober', 'November', 'Detsember'],
'WeekDay': ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev']
},
'LanguageType.FINNISH': {
'Month': ['Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu',
'Toukokuu', 'Kesäkuu', 'Heinäkuu', 'Elokuu',
'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu'],
'WeekDay': ['Sunnuntai', 'Maanantai', 'Tiistai', 'Keskiviikko', 'Torstai', 'Perjantai', 'Lauantai']
},
'LanguageType.FRENCH': {
'Month': ['Janvier', 'Février', 'Mars', 'Avril',
'Mai', 'Juin', 'Juillet', 'Août',
'Septembre', 'Octobre', 'Novembre', 'Décembre'],
'WeekDay': ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']
},
'LanguageType.GERMAN': {
'Month': ['Januar', 'Februar', 'März', 'April',
'Mai', 'Juni', 'Juli', 'August',
'September', 'Oktober', 'November', 'Dezember'],
'WeekDay': ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']
},
'LanguageType.GREEK': {
'Month': ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος',
'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος',
'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'],
'WeekDay': ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο']
},
'LanguageType.ITALIAN': {
'Month': ['Gennaio', 'Febbraio', 'Marzo', 'Aprile',
'Maggio', 'Giugno', 'Luglio', 'Agosto',
'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],
'WeekDay': ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato']
},
'LanguageType.LATVIAN': {
'Month': ['Janvāris', 'Februāris', 'Marts', 'Aprīlis',
'Maijs', 'Jūnijs', 'Jūlijs', 'Augusts',
'Septembris', 'Oktobris', 'Novembris', 'Decembris'],
'WeekDay': ['Svētdiena', 'Pirmdiena', 'Otrdiena', 'Trešdiena', 'Ceturtdiena', 'Piektdiena', 'Sestdiena']
},
'LanguageType.LITHUANIAN': {
'Month': ['Sausis', 'Vasaris', 'Kovas', 'Balandis',
'Gegužė', 'Birželis', 'Liepa', 'Rugpjūtis',
'Rugsėjis', 'Spalis', 'Lapkritis', 'Gruodis'],
'WeekDay': ['Sekmadienis', 'Pirmadienis', 'Antradienis', 'Trečiadienis', 'Ketvirtadienis', 'Penktadienis', 'Šeštadienis']
},
'LanguageType.NORWEGIAN': {
'Month': ['Januar', 'Februar', 'Mars', 'April',
'Mai', 'Juni', 'Juli', 'August',
'September', 'Oktober', 'November', 'Desember'],
'WeekDay': ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag']
},
'LanguageType.POLISH': {
'Month': ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia'],
'WeekDay': ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota']
},
'LanguageType.PORTUGUESE': {
'Month': ['Janeiro', 'Fevereiro', 'Março', 'Abril',
'Maio', 'Junho', 'Julho', 'Agosto',
'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
'WeekDay': ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado']
},
'LanguageType.ROMANIAN': {
'Month': ['Ianuarie', 'Februarie', 'Martie', 'Aprilie',
'Mai', 'Iunie', 'Iulie', 'August',
'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie'],
'WeekDay': ['Duminică', 'Luni', 'Marți', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă']
},
'LanguageType.SLOVAK': {
'Month': ['januára', 'februára', 'marca', 'apríla', 'mája', 'júna', 'júla', 'augusta', 'septembra', 'októbra', 'novembra', 'decembra'],
'WeekDay': ['Nedeľa', 'Pondelok', 'Utorok', 'Streda', 'Štvrtok', 'Piatok', 'Sobota']
},
'LanguageType.SPANISH': {
'Month': ['Enero', 'Febrero', 'Marzo', 'Abril',
'Mayo', 'Junio', 'Julio', 'Agosto',
'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
'WeekDay': ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado']
},
'LanguageType.SWEDISH': {
'Month': ['Januari', 'Februari', 'Mars', 'April',
'Maj', 'Juni', 'Juli', 'Augusti',
'September', 'Oktober', 'November', 'December'],
'WeekDay': ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag']
},
'LanguageType.UKRANIAN': {
'Month': ['січня', 'лютого', 'березня', 'квітня', 'травня', 'червня', 'липня', 'серпня', 'вересня', 'жовтня', 'листопада', 'грудня'],
'WeekDay': ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'Пʼятниця', 'Субота']
}
};
var itemsDict = pushItems(doc.pageItems);
for (var j = 0; j < itemsDict['Page Nr'].length; j++) {
var myItem = itemsDict['Page Nr'][j]//.getByName(pageNrName);
if (myItem.typename == 'TextFrame') {
displayPageNumbersTxt(myItem);
} else if (myItem.typename == 'GroupItem') {
displayPageNumbersGroup(myItem);
}
}
for (var j = 0; j < itemsDict['Doc Name'].length; j++) {
var myItem = itemsDict['Doc Name'][j];
if (myItem.typename == 'TextFrame') {
displayDocNameTxt(myItem);
} else if (myItem.typename == 'GroupItem') {
displayDocNameGr(myItem);
}
}
for (var j = 0; j < itemsDict['Date'].length; j++) {
var myItem = itemsDict['Date'][j];
if (myItem.typename == 'TextFrame') {
displayDateTxt(myItem);
} else if (myItem.typename == 'GroupItem') {
displayDateGr(myItem);
}
}
function displayDateTxt(myItem) {
var paragraph = myItem.textRange.paragraphs[0]//.paragraph.language;
var language = paragraph.language;
var DateArr = getDate(language);
var startPoint = getStartPoint(doc.artboards[0], myItem);//[pointX[0], pointY[0]];
var myDir = getDir(myItem, startPoint);
var ABlength = doc.artboards.length; // number of artboards
if(DateArr[0] < 9){
var dayDig = parseInt(DateArr[0], 10);
}else{
var dayDig = DateArr[0];
};
if(DateArr[1] < 9){
var monthDig = parseInt(DateArr[1], 10);
}else{
var monthDig = DateArr[1];
};
var monthLat = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"];
for (var l = 0; l < monthLat.length; l++){
if(DateArr[1] == l + 1){
var latDig = monthLat[l];
}
}
var inputString = myItem.contents;
var content = inputString.replace(/<DD>/g, '<dd>').replace(/<MM>/g, '<mm>').replace(/<YY>/g, '<yy>').replace(/<YYYY>/g, '<yyyy>').replace(/<MONTH>/g, '<month>').replace(/<WD>/g, '<wd>').replace(/<D>/g, '<d>').replace(/<M>/g, '<m>').replace(/<LM>/g, '<lm>');
var finalContent = content.replace(/<dd>/g, DateArr[0]).replace(/<d>/g, dayDig).replace(/<m>/g, monthDig).replace(/<mm>/g, DateArr[1]).replace(/<lm>/g, latDig).replace(/<yy>/g, DateArr[4]).replace(/<yyyy>/g, DateArr[2]).replace(/<month>/g, DateArr[3]).replace(/<wd>/g, DateArr[5]);
var textArr = [];
for (i = 0; i < ABlength; i++) {
var itext = myItem.duplicate();
itext.contents = finalContent;
itext.name = itext.name + [i + 1]
textArr.push(itext);
}
for (i = 0; i < textArr.length; i++) {
var newCoord = getCoordsfromBorder(textArr[i], startPoint, doc.artboards[i], myDir);
textArr[i].position = newCoord;
}
myItem.remove();
};
function displayPageNumbersTxt(myItem) {
var ABlength = doc.artboards.length;
var startPoint = getStartPoint(doc.artboards[0], myItem);
var inputString = myItem.contents;
var myDir = getDir(myItem, startPoint);
var textArr = [];
for (i = 0; i < ABlength; i++) {
if(i < 9){
var pageDig = '0' + [i + 1];
}else{
var pageDig = [i + 1];
};
if(ABlength < 9){
var pagesDig = '0' + ABlength;
}else{
var pagesDig = ABlength;
};
var newContent = inputString.replace(/<p>/g, i + 1).replace(/<P>/g, i + 1).replace(/<PP>/g, pageDig).replace(/<pP>/g, pageDig).replace(/<Pp>/g, pageDig).replace(/<pp>/g, pageDig);
var finalContent = newContent.replace(/<ps>/g, ABlength).replace(/<PS>/g, ABlength).replace(/<Ps>/g, ABlength).replace(/<pS>/g, ABlength).replace(/<ppS>/g, pagesDig).replace(/<pPS>/g, pagesDig).replace(/<PPS>/g, pagesDig).replace(/<PpS>/g, pagesDig).replace(/<PPs>/g, pagesDig).replace(/<Pps>/g, pagesDig).replace(/<pps>/g, pagesDig);
var itext = myItem.duplicate()
itext.contents = finalContent;
itext.name = itext.name + [i + 1]
textArr.push(itext);
}
for (i = 0; i < textArr.length; i++) {
var newCoord = getCoordsfromBorder(textArr[i], startPoint, doc.artboards[i], myDir);
textArr[i].position = newCoord;
}
myItem.remove();
};
function displayDocNameTxt(myItem) {
var ABlength = doc.artboards.length;
var startPoint = getStartPoint(doc.artboards[0], myItem);
var myDir = getDir(myItem, startPoint);
var textArr = [];
var inputString = myItem.contents;
var filenameEx = app.activeDocument.name;
var fileName = filenameEx.split('.').slice(0, -1).join('.');
var content = inputString.replace(/<Name>/g, '<name>').replace(/<NAME>/g, '<name>').replace(/<NAme>/g, '<name>').replace(/<nAme>/g, '<name>').replace(/<naMe>/g, '<name>');
var finalContent = content.replace(/<name>/g, fileName).replace(/<nameex>/g, filenameEx);
myItem.contents = finalContent;
for (i = 0; i < ABlength; i++) {
var itext = myItem.duplicate();
itext.contents = finalContent;
itext.name = itext.name + [i + 1]
textArr.push(itext);
}
for (i = 0; i < textArr.length; i++) {
var newCoord = getCoordsfromBorder(textArr[i], startPoint, doc.artboards[i], myDir);
textArr[i].position = newCoord;
}
myItem.remove();
};
function displayDateGr(myItem) {
var ABlength = doc.artboards.length;
var startPoint = getStartPoint(doc.artboards[0], myItem);
var myDir = getDir(myItem, startPoint);
for (i = 0; i < ABlength; i++) {
var dupple = myItem.duplicate();
var itemsArr = find_items(dupple, textInFrame);
var inputString = myItem.contents;
for (var j = 0; j < itemsArr.length; j++) {
var language = itemsArr[j].textRange.paragraphs[0].language;
var DateArr = getDate(language);
if(DateArr[0] < 9){
var dayDig = parseInt(DateArr[0], 10);
}else{
var dayDig = DateArr[0];
};
if(DateArr[1] < 9){
var monthDig = parseInt(DateArr[1], 10);
}else{
var monthDig = DateArr[1];
};
var monthLat = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"];
for (var l = 0; l < monthLat.length; l++){
if(DateArr[1] == l + 1){
var latDig = monthLat[l];
}
}
var inputString = itemsArr[j].contents;
var content = inputString.replace(/<DD>/g, '<dd>').replace(/<MM>/g, '<mm>').replace(/<YY>/g, '<yy>').replace(/<YYYY>/g, '<yyyy>').replace(/<MONTH>/g, '<month>').replace(/<WD>/g, '<wd>').replace(/<D>/g, '<d>').replace(/<M>/g, '<m>').replace(/<LM>/g, '<lm>');
var finalContent = content.replace(/<dd>/g, DateArr[0]).replace(/<d>/g, dayDig).replace(/<m>/g, monthDig).replace(/<mm>/g, DateArr[1]).replace(/<lm>/g, latDig).replace(/<yy>/g, DateArr[4]).replace(/<yyyy>/g, DateArr[2]).replace(/<month>/g, DateArr[3]).replace(/<wd>/g, DateArr[5]);
itemsArr[j].contents = finalContent;
}
dupple.position = getCoordsfromBorder(dupple, startPoint, doc.artboards[i], myDir);
dupple.name = myItem.name + [i + 1];
}
myItem.remove();
};
function displayDocNameGr(myItem) {
var ABlength = doc.artboards.length;
var startPoint = getStartPoint(doc.artboards[0], myItem);
var myDir = getDir(myItem, startPoint);
for (i = 0; i < ABlength; i++) {
var dupple = myItem.duplicate();
var itemsArr = find_items(dupple, textInFrame);
for (var j = 0; j < itemsArr.length; j++) {
var inputString = itemsArr[j].contents;
var filenameEx = app.activeDocument.name;
var fileName = filenameEx.split('.').slice(0, -1).join('.');
var content = inputString.replace(/<Name>/g, '<name>').replace(/<NAME>/g, '<name>').replace(/<NAme>/g, '<name>').replace(/<nAme>/g, '<name>').replace(/<naMe>/g, '<name>');
var finalContent = content.replace(/<name>/g, fileName).replace(/<nameex>/g, filenameEx);
itemsArr[j].contents = finalContent;
}
dupple.position = getCoordsfromBorder(dupple, startPoint, doc.artboards[i], myDir);
dupple.name = myItem.name + [i + 1];
}
myItem.remove();
};
function displayPageNumbersGroup(myItem) {
var ABlength = doc.artboards.length;
var startPoint = getStartPoint(doc.artboards[0], myItem);
var myDir = getDir(myItem, startPoint);
for (i = 0; i < ABlength; i++) {
var dupple = myItem.duplicate()
var itemsArr = find_items(dupple, textInFrame);
if(i < 9){
var pageNr = '0' + (i+1);
}else{var pageNr = i+1; }
for (var j = 0; j < itemsArr.length; j++) {
var inputString = itemsArr[j].contents;
var content = inputString.replace(/<P>/g, '<p>').replace(/<PS>/g, '<ps>').replace(/<Ps>/g, '<ps>').replace(/<pS>/g, '<ps>');
var newContent = content.replace(/<p>/g, i + 1).replace(/<pp>/g, pageNr).replace(/<ps>/g, ABlength);
itemsArr[j].contents = newContent;
}
dupple.position = getCoordsfromBorder(dupple, startPoint, doc.artboards[i], myDir);
dupple.name = myItem.name + [i + 1];
}
myItem.remove();
};
function ItemsNewPos(myArtboard, oldpos, new_coord) {
var rect = myArtboard.artboardRect;
var x_ori = rect[0];
var y_ori = rect[1];
var newPos = [oldpos[0] - x_ori + new_coord[0], oldpos[1] - y_ori + new_coord[1]];
return newPos;
}
function getDate(Language) {
var today = new Date();
var date = today.getDate();
var month = today.getMonth() + 1;
if (date < 10) { date = "0" + today.getDate() } else { date = today.getDate() };
if (month < 10) { month = "0" + (today.getMonth() + 1) } else { month = (today.getMonth() + 1) };
var monthDays = languageMappings[Language];
if (!monthDays) {
monthDays = languageMappings[LanguageType.ENGLISH];
}
var monthNames = monthDays['Month'];
var weekdayNames = monthDays['WeekDay'];
var currentDay = new Date().getDay();
var weekdayName = weekdayNames[currentDay];
var currentMonth = new Date().getMonth();
var monthName = monthNames[currentMonth];
var fullYear = today.getFullYear();
var lastTwoDigits = fullYear % 100;
return [date, month, today.getFullYear(), monthName, lastTwoDigits, weekdayName];
};
function findRegex(inputString, regex) {
var matches = inputString.match(regex);
if (matches) {
return matches;
}
return null;
};
function pushItems(items) {
var itemsNamesDict = {
'Page Nr': [],
'Doc Name': [],
'Date': []
}
for (var i = 0; i < items.length; i++) {
var itemName = capitalize(items[i].name);
if (itemsNamesDict.hasOwnProperty(itemName)) {
itemsNamesDict[itemName].push(items[i]);
}
}
return itemsNamesDict;
};
function capitalize(str) {
//Capitalaze first letters
return str.replace(/\b\w/g, function (l) {
return l.toUpperCase();
});
};
function find_items(myItem, collect_function) {
function return_all(myItem, arr) {
arr.push(myItem)
return arr
}
if (typeof collect_function == 'undefined') {
collect_function = return_all
}
var arr = [];
return find_items_recursive(myItem, arr, collect_function)
};
function find_items_recursive(myItem, arr, collect_function) {
if (myItem.typename == "GroupItem") {
for (var i = 0; i < myItem.pageItems.length; i++) {
var arr = find_items_recursive(myItem.pageItems[i], arr, collect_function);
}
}
else if (myItem.typename == "PageItems") {
for (var i = 0; i < myItem.length; i++) {
var arr = find_items_recursive(myItem[i], arr, collect_function);
}
}
else {
var arr = collect_function(myItem, arr)
}
return arr;
};
//coords skal være defñ®†
function textInFrame(myItem, arr) {
if (myItem.typename == "TextFrame") { // {
arr.push(myItem);
}
return arr
};
function getDir(myItem, startPoint) {
var bounds = myItem.geometricBounds;
if (startPoint['coord'][0] == bounds[0] && startPoint['coord'][1] == bounds[1]) {
var dir = 'TL';
} else if (startPoint['coord'][0] == bounds[0] && startPoint['coord'][1] == bounds[3]) {
var dir = 'BL';
} else if (startPoint['coord'][0] == bounds[2] && startPoint['coord'][1] == bounds[1]) {
var dir = 'TR';
} else if (startPoint['coord'][0] == bounds[2] && startPoint['coord'][1] == bounds[3]) {
var dir = 'BR';
} else {
var dir = 'TL';
}
return dir;
}
function getCoordsfromBorder(myItem, startPoint, AB, dir) {
var ABrect = AB.artboardRect;
if (dir == 'TL') {
if (myItem.typename == 'TextFrame') {
var startCoord = [ABrect[0] + startPoint['dist'][0], ABrect[1] - startPoint['dist'][1]];
} else {
var startCoord = [ABrect[0] + startPoint['dist'][0], ABrect[1] - startPoint['dist'][1]];
}
} else if (dir == 'BL') {
// alert('BL')
if (myItem.typename == 'TextFrame') {
var startCoord = [ABrect[0] + startPoint['dist'][0], ABrect[3] + startPoint['dist'][1] + myItem.height];
} else {
var startCoord = [ABrect[0] + startPoint['dist'][0], ABrect[3] + startPoint['dist'][1] + myItem.height];
}
} else if (dir == 'TR') {
//alert('TR')
if (myItem.typename == 'TextFrame') {
var startCoord = [ABrect[2] - startPoint['dist'][0] - myItem.width, ABrect[1] - startPoint['dist'][1]];
} else {
var startCoord = [ABrect[2] - startPoint['dist'][0] - myItem.width, ABrect[1] - startPoint['dist'][1]];
}
} else if (dir == 'BR') {
//alert('BR')
if (myItem.typename == 'TextFrame') {
var startCoord = [ABrect[2] - startPoint['dist'][0] - myItem.width, ABrect[3] + startPoint['dist'][1] + myItem.height];
} else {
var startCoord = [ABrect[2] - startPoint['dist'][0] - myItem.width, ABrect[3] + startPoint['dist'][1] + myItem.height];
}
}
return startCoord
}
function minstDist(coord1, arr) {
//Finds min distance from point and array, push points and distance in an array
var minDist = 1e16;
for (var i = 0; i < arr.length; i++) {
var coord2 = arr[i];
var curDist = findDist(coord1, coord2);
if (curDist < minDist) {
minDist = curDist;
var myP = coord2;
}
}
return [myP, minDist];
};
function findDist(coord1, coord2) {
//Finds distance between two items from coordinates
if (typeof (coord1) == "number") {
coord1 = [coord1];
}
if (typeof (coord2) == "number") {
coord2 = [coord2];
}
var sumOfSquares = 0;
for (var i = 0; i < coord1.length; i++) {
var sum = (coord1[i] - coord2[i]) * (coord1[i] - coord2[i]);
sumOfSquares += sum;
}
return Math.sqrt(sumOfSquares);
};
function findFinalDist(selarr, arr) {
//Finds min distance from two arrays, push points and distance in an array
var minDist = 1e16;
for (var i = 0; i < selarr.length; i++) {
var coord1 = selarr[i];
var newDistArr = minstDist(coord1, arr);
if (newDistArr[1] < minDist) {
minDist = newDistArr[1];
var myP1 = coord1;
var myP2 = newDistArr[0];
}
}
return [myP1, myP2, minDist];
};
function getStartPoint(AB, myItem) {
var ABrect = AB.artboardRect;
var abArrX = [ABrect[0], ABrect[2]];
var abArrY = [ABrect[1], ABrect[3]];
var itemRect = myItem.geometricBounds;//textFrame.geometricBounds;
var itemArrX = [itemRect[0], itemRect[2]];
var itemArrY = [itemRect[1], itemRect[3]];
var pointX = findFinalDist(itemArrX, abArrX);
var pointY = findFinalDist(itemArrY, abArrY)
return { 'coord': [pointX[0], pointY[0]], 'dist': [pointX[2], pointY[2]] };
}