자동으로 줄을 바꾼 필명을 다음 줄로 보내기
10424 단어 indesign
※ 사용은 자신의 책임이 아닙니다
※ 해당 스크립트의 동작은 InDesign CS5로 확인됩니다.5로 했어요.
이번에는 오른쪽 들여쓰기에서 정렬하려는 문자가 줄 너비 관계로 되돌아간 후 줄을 바꾸는 처리입니다.아, 글이 전달되기 어려워요.편집 후기, 편집 후기, 편집 후기에 자주 나오는 (이것만 생각난다) 모양의 그거다.필명은'단락의 마지막 오른쪽으로 정렬'형식이다.
스크립트로 '작가의 이름이 줄 너비로 인해 자동으로 줄을 바꾼다면 줄을 가지런히 바꾸기를 바랍니다.' 를 자동으로 처리해 보십시오.금번
마지막 행에 오른쪽 들여쓰기가 없으면 오른쪽 들여쓰기 전에 새 행을 삽입합니다.
그럼 한번 해보세요.
잠깐 설명 좀 해주세요.
·우축진 판정은'스페셜 체라커스(RIGHT INDENT TAB)'를 사용했다.만약 제어코드로 검사를 한다면 처음에는 분명히 동작이었는데 중간에 움직일 수 없는 이상한 현상은 잘 모르겠지만 이쪽의 동작은 비교적 안정적이다.
· 다른 줄의 추가 부분이지만, 여기는 Character의 콘텐츠에 문자를 강제로 삽입하는 방법을 취한다.기타노 씨의 스크립트에도 소개됐는데 체라커의 콘텐츠에 글을 붙이면해당 부분에 Character와 동일한 설정의 문자(@@; 처음 이를 알아차렸을 때 깜짝 놀랐다. 아이고, 쉽고 좋다. 그나저나 콘텐츠의 오른쪽으로 들여쓰기는 했지만 판정에 사용된'Special Characters. RIGHT INDENTTAB'그럼 잘 안되니까 여기서 바로 스트링.fromChard(8)가 추가되었습니다.
//各段落の最終行をCheck
function LAST_LINE_Check() {
var myDoc = app.activeDocument;
var myPage= null;
var myItems = null;
var myParagraphs = null;
var myParagraph = null;
var myCharacters = null;
var myCharacter = null;
var myBox = "";
//ページのループ
for (var p=0; p<myDoc.pages.length; p++) {
myPage = myDoc.pages.item(p);
myItems = myPage.allPageItems;
//ページアイテムのループ
for (var i=0;i<=myItems.length-1;i++) {
if (myItems[i].constructor.name !== "TextFrame") {
continue;
}
myBox = myItems[i];
myParagraphs = myBox.paragraphs;
//段落のループ
for (var j = 0;j<=myParagraphs.length-1;j++) {
myParagraph = myParagraphs[j];
myCharacters = myParagraph.characters;
//文字列のループ
for (var t=myCharacters.length-1;t>=0;t--) {
myCharacter = myCharacters[t];
//右インデントのチェック
if (myCharacter.contents === SpecialCharacters.RIGHT_INDENT_TAB) {
//右インデントの位置が最終行かどうか判定
if (No_LastLine(myParagraph,t)) {
//conntentsに強引に複数文字を割り当てると
//該当箇所に文字が追加されます
myCharacter.contents = "\015" + String.fromCharCode(8);
}
break;
}
}
}
}
}
}
//段落の最終行か否かのチェック
function No_LastLine(NowParagraph,NowIndex) {
var myLines = NowParagraph.lines;
var total = 0;
var myPosition = NowIndex;
//最終行の文字を除いた文字数を計算
for (var i = 0;i<myLines.length-1;i++) {
total = total + myLines[i].characters.length;
}
//境目の文字がトータルより小さい=最終行では無いので改行が必要
if (total > myPosition) {
return true
} else {
return false
}
}
LAST_LINE_Check();
Reference
이 문제에 관하여(자동으로 줄을 바꾼 필명을 다음 줄로 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/happyscript/items/aa276a4f506cd41fefad텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)