-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathFolioInverse.jsx
More file actions
153 lines (123 loc) · 4.8 KB
/
FolioInverse.jsx
File metadata and controls
153 lines (123 loc) · 4.8 KB
1
//DESCRIPTION:Convert Page Number Placeholder '#' into Text // A Jongware Script 11-Dec-2011 // http://indesignsecrets.com/making-page-numbers-words-numbers.php var allPages = app.activeDocument.pages; for (iterate=0; iterate<allPages.length; iterate++) { customPageNumber (allPages[iterate]); } function customPageNumber (aPage) { if (aPage.appliedMaster == null) return; pageSide = (aPage.side == PageSideOptions.RIGHT_HAND) ? 1 : 0; masterFrame = findFrameContaining (aPage.appliedMaster, pageSide, '#'); if (masterFrame != null) { frame = findByLabel (aPage.pageItems, "page number"); if (frame != null) { frame.removeOverride(); } frame = masterFrame.override (aPage); frame.label = "page number"; placeholder = frame.contents.indexOf ('#'); if (placeholder != -1) { //pageString = numberToText(Number(aPage.name)); //pageString = pageString.substr(0,1).toUpperCase()+pageString.substr(1); pageString = allPages.length - Number(aPage.name) + 1; frame.characters[placeholder].contents = String(pageString); } } } function findFrameContaining (master, side, text) { var masterPage; var i; if (master.pages.length > 1) masterPage = master.pages[side]; else masterPage = master.pages[0]; for (i=0; i<masterPage.textFrames.length; i++) { if (masterPage.textFrames[i].contents.indexOf(text) > -1) return masterPage.textFrames[i]; } // Not found? Perhaps on this Master's Master? if (master.appliedMaster != null) return findFrameContaining (master.appliedMaster, side, text); return null; } // Needed because the very useful label lookup was // -- totally unnecessarily! -- removed in CS5+ ... function findByLabel (items, label) { var i; for (i=0; i<items.length; i++) if (items[i].label == label) return items[i]; return null; } function numberToText(number) { var ones = ["zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf"]; var tens = ["zéro", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante-dix", "quatre-vingt", "quatre-vingt-dix"]; var result = ''; if (number < 0) return "ha ha"; if (number == 0) return ones[0]; if (number >= 1000) { thousand = Math.floor(number / 1000); if (thousand > 1) { result = numberToText(thousand) + " mille"; } else { result = "mille"; } number = number - 1000 * thousand; if (number > 0) result = result + " "; } if (number >= 100) { hundred = Math.floor(number / 100); pluriel = hundred > 1 ? "s" : ""; if (hundred > 1) { result = result + ones[hundred] + " cent" + pluriel; } else { result = result + "cent"; } number = number - 100 * hundred; if (number != 0) result = result + " "; } if (number >= 60) { if (number >= 80) { twenty = number - 80; result = result + tens[8]; if (twenty != 0) { result = result + "-" + ones[twenty]; }else{ result = result + "s"; } } else if (number >= 60) { twenty = number - 60; result = result + tens[6]; if (twenty == 1 || twenty == 11) { result = result + " et " + ones[twenty]; } else if (twenty != 0 && twenty != 1 && twenty != 11) { result = result + "-" + ones[twenty]; } } } if (number >= 20 && number < 60) { ten = Math.floor(number / 10); result = result + tens[ten]; number = number - 10 * ten; if (number == 1) { result = result + " et "; } if (number != 0 && number != 1) result = result + "-"; } if (number != 0 && (number < 60 || number > 99)) result = result + ones[number]; return result;}