new_arr 열)| 열 | 의미 | 날짜·기간 치환에 쓰임 |
|---|---|---|
[0] | 상호 | 앞면·세네카 상호 |
[1] | 기수 | 제 1 기 / 第 1 期 |
[2] | 연도(숫자) | 연도 치환. 옵션 chk3가 켜지면 연도 − 1 |
[3] | 1기 시작 월일 | 예: 05월 01일 형태. 비우면 01월 01일 처리 |
[4] | 제목 | 제목 플레이스홀더 |
[5] | 책 두께(mm) | bookThick — 세네카는 chk1 시 구간별 글자 크기. 10mm·*10* 문자열 치환은 앞면만 |
[10]~[15] | [no], [a]~[e] | 앞면 전용 치환 |
chk3 체크 시 위 표의 연도([2])를 1 빼서 사용합니다.
new_arr에 넣지 않습니다(filterExcelRowsWithNonEmptyCompany).normalizeExcelMonthDateKO로 정리한 뒤 MM월 DD일 형태로 사용합니다(yyyy-mm-dd·月日·연호·하이픈 월일 등).아래 예시는 엑셀(데이터)이 연도 2025, 시작 월일 03월 13일(열 [3]), chk3 해제일 때를 가정했습니다. 시작일 열이 비어 있으면 01월 01일로 치환됩니다.
인디자인에서 오브젝트의 레이어명이 앞면일 때만 이 블록의 규칙이 적용됩니다.
2000년 01월 01일 부터 2000년 12월 31일 까지
2025년 03월 13일 부터 2025년 12월 31일 까지
시작일 열이 비었을 때: 2025년 01월 01일 부터 / 2025년 12월 31일 까지
2000년 01월 01일 2000년 12월 31일
2025년 03월 13일 2025년 12월 31일
- 로 연결)2000년 01월 01일 - 2000년 12월 31일
2025년 03월 13일 - 2025년 12월 31일
하이픈 앞뒤 공백 없이 붙여도 인식합니다. 치환 후에는 - (양쪽 공백)으로 맞춥니다.
부터 · 까지 로 연결, 앞면만)2000년 01월 01일부터 2000년 12월 31일까지
2025년 03월 13일부터 2025년 12월 31일까지
일과 부터 사이 공백은 있어도·없어도 됩니다. 부터 뒤 공백은 치환 후 한 칸으로 정리됩니다.
自 2000年 01月 01日 至 2000年 12月 31日
自 2025年 03月 13日 至 2025年 12月 31日
기수 예시는 엑셀 [1] = 3, 제목 예시는 [4] = 아래 문장으로 가정.
제목 제 1 기 第 1 期 상호 10mm *10*
2025년 법인세무조정 계산서 제 3 기 第 3 期 (주)화인회계법인 15mm *15*
10mm·*10*는 책 두께(bookThick)가 15일 때의 예입니다. [no], [a]~[e]는 엑셀 해당 열 값으로 그대로 바뀝니다.
문자열 내용 치환만 정리했습니다. (else if 체인에서 앞 조건에 걸리면 뒤 조건은 적용되지 않습니다.)
| 조건 (템플릿에 넣을 글자) | 바뀌는 결과 |
|---|---|
정확히 제목 |
new_arr[p][4] (제목) |
정확히 第 1 期 |
第 + 기수([1]) + 期 |
정확히 제 1 기 |
제 + 기수([1]) + 기 |
문장 첫 글자가 自 (한문 기간) |
전체를 한문 2줄로 교체. 연도는 [2](+ chk3), 시작일은 [3]에서 월·일 추출.自 YYYY年 MM月 DD日 至 YYYY年 12月 31日 [3]이 비면 MM·DD는 01·01.
|
16번째 글자(인덱스 15)가 터 — 보통 2000년 01월 01일 부터로 이어지는 2줄 형태 |
한글 기간(부터·까지) 2줄로 교체.YYYY년 [시작월일] 부터 YYYY년 12월 31일 까지 [3] 비면 시작을 01월 01일.
|
부터·까지가 없고, 아래 둘 중 하나에 해당 |
A) 줄바꿈 2줄: 첫 줄 ^\d{4}년 \d{2}월 \d{2}일$, 둘째 줄 ^\d{4}년 12월 31일$ (앞뒤 공백 무시)B) 한 줄: - 로 나눈 두 부분이 위와 동일 패턴결과는 입력과 같이 \n 구분 또는 - 구분 유지.연도·시작일 규칙은 위 “부터/까지” 경우와 동일(끝은 항상 해당 연도 12월 31일).
|
정확히 상호 |
new_arr[p][0] |
else if와 별도로 항상 검사 (같은 레이어 내)| 조건 | 결과 |
|---|---|
10mm | bookThick + mm |
*10* | * + bookThick + * |
[no], [a]~[e] | 각각 [10]~[15] 대응 값 |
위 세 줄은 앞의 else if와 관계없이, 텍스트가 정확히 일치하면 덮어씁니다(실행 순서상 나중에 실행되는 항목이 우선).
인디자인에서 오브젝트의 레이어명이 세네카일 때만 이 블록의 규칙이 적용됩니다.
연도 예시는 앞면과 같이 2025·chk3 해제를 가정합니다. 2000년 등은 한 프레임에 해당 문자열만 있을 때 각각 치환됩니다.
2000년 2000年 2000 2000년도
2025년 2025年 2025 2025년도
실제로는 한 프레임에 하나씩 넣는 조건입니다. 위는 네 종류를 한눈에 비교하려고 한 블록에 모아 적었습니다.
제목
2025년 법인세무조정 계산서
엑셀 E열·new_arr[p][4]로 한 줄 교체합니다.
2000년 01월 01일 부터 2000년 12월 31일 까지
2025년 03월 13일 부터 2025년 12월 31일 까지
세네카는 문장 전체를 바꾸지 않고 글자 위치로만 고칩니다. 줄바꿈·공백이 다르면 결과가 틀어질 수 있어, 반드시 정해진 템플릿을 쓰는 것이 안전합니다. 책 두께 ≤5mm이면 줄바꿈이 공백 한 칸으로 바뀔 수 있습니다.
앞면과 달리 세네카는 한 줄 … - … 구간이나 한 줄 …부터 …까지 형태는 처리하지 않습니다. 두 줄 한글(18번째 글자 터 조건)·한문 自·至 두 줄만 해당합니다.
自 2000年 01月 01日 至 2000年 12月 31日
自 2025年 03月 13日 至 2025年 12月 31日
제 1 기 第 1 期
제 3 기 第 3 期
실제 동작은 중간의 1을 지우고 기수를 끼워 넣는 방식이라, 보이는 결과는 위와 같습니다. (제 1 기와 第 1 期는 보통 각각 별도 프레임입니다.)
중요: 세네카 기수는 앞면처럼 전체 교체하지 않습니다. 세로쓰기 프레임에서 두 자리 기수(예: 13)를 전체 교체하면 숫자가 1, 3으로 세로 분리될 수 있으므로, 이전 버전처럼 insertionPoints[3]에 B열 값을 삽입하고 기존 1만 삭제합니다.
옵션 chk1을 켰을 때만 적용됩니다. 책 두께 bookThick(new_arr[p][5]) 구간에 따라 pointSize, 가로·세로 장평 등이 달라지며, 값은 스크립트 상단 변수(v21 등)에 정의되어 있습니다.
| 텍스트 조건 | 적용 |
|---|---|
제목 | 두께 ≤3 / ≤5 / 15~20 / ≥20mm 구간별 스타일 |
제 1 기 또는 第 1 期 | 위와 동일하게 구간별 스타일 |
한글 기간: 년·부터·까지 모두 포함또는 한문: 自·至·年 포함 |
날짜 블록용 구간별 스타일. 일부 구간에서 leading 16pt 등 추가 |
상호 | 상호용 구간별 스타일 |
| 위에 해당 없음 (기타) | 기타용 구간별 스타일 |
스크립트에서 같은 루프 뒤쪽 블록으로 처리합니다.
| 조건 | 바뀌는 결과 |
|---|---|
정확히 제목 |
new_arr[p][4] |
정확히 제 1 기 또는 第 1 期 |
앞면과 달리 전체 교체가 아님: 삽입점에 기수([1])를 넣고, 기존 1 글자 한 자리를 삭제해 제 N 기/第 N 期 형태로 맞춤. 두 자리 숫자가 세로로 분리되지 않게 하기 위한 이전 버전 호환 처리 |
정확히 2000년 |
연도 문자열 + 년 (chk3 반영) |
정확히 2000年 |
연도 문자열 + 年 |
정확히 2000 (숫자만) |
연도 문자열만 |
정확히 2000년도 |
연도 문자열 + 년도 |
18번째 글자(인덱스 17)가 터 — 템플릿에 맞는 한글 기간 문구 |
스토리를 글자 단위로 수정: 시작 연도 4자리, 월·일([3]의 해당 위치), 끝 줄 연도 4자리 등.[3]이 비면 시작·끝 연도만 바꿈.책두께 ≤ 5mm이면 줄바꿈( \n)을 공백 한 칸으로 바꿈.
|
첫 글자 自 (한문 기간, 한 줄/블록) |
역시 글자 단위로 연도·월·일·끝 연도 수정 (한문 템플릿의 글자 위치에 맞춤).[3] 비면 시작·끝 연도만 조정.책두께 ≤ 5mm이면 \n → 공백 한 칸.
|
정확히 상호 |
new_arr[p][0]로 교체.상호 길이 < 5면 오른쪽 정렬· tracking 600.영문 대문자·숫자 글자는 세로쓰기용으로 문자 회전 처리( rotateCharacterOrientation).
|
textFrames[i].contents를 통째로 새 문자열로 바꿉니다.부터형·한문 自형은 문자 인덱스로 한 글자씩 바꿉니다. 그래서 인디자인 템플릿의 글자 수·줄바꿈이 스크립트가 가정한 것과 다르면 어긋날 수 있습니다.text[15]=="터"와 세네카의 text[17]=="터"는 서로 다른 길이의 문자열을 전제로 한 조건입니다.부터…까지 기간은 앞면에서만 처리합니다.파일명: 세무조정087.jsx 기준 · 생성: 참고용 HTML (스크립트와 함께 두고 보시면 됩니다). 큰글 예시: 세무조정085_치환예시_큰글씨.html.