.TTF 파일이란?
확장자가 .ttf인 파일은 TrueType 사양 글꼴 기술을 기반으로 하는 글꼴 파일을 나타냅니다. 처음에는 Apple Computer, Inc에서 Mac OS용으로 설계 및 출시했으며 나중에 Windows OS용으로 Microsoft에서 채택했습니다. TrueType 글꼴은 해상도에 의존하지 않고 컴퓨터 화면과 프린터에서 최고 품질의 디스플레이를 제공합니다. 글꼴을 사용하는 모든 최신 응용 프로그램은 TTF 파일을 사용할 수 있습니다. TTF 글꼴 파일은 인터넷을 통해 자유롭게 사용할 수 있으며 OTF 및 WOFF와 같은 다른 글꼴 파일 형식으로 변환할 수도 있습니다.
약력
1980년대에 MacOS용으로 Apply Computer, Inc에 의해 설계된 TTF 글꼴 형식은 Adobe의 Type 1 형식에 의한 몇 가지 기술적인 한계를 해결하기 위한 것이었습니다. Apple은 1991년에 Mac에서 TrueType 글꼴에 대한 지원을 포함했습니다. TTF 글꼴의 디자인 목표는 저장 및 처리 효율성, 확장성이었습니다. 이러한 확장성을 기반으로 기존 글꼴을 TrueType 형식으로 변환할 수 있습니다.
마이크로소프트는 1992년 4월 애플이 마이크로소프트에 트루타입을 라이선스하기로 동의한 후 윈도우 3.1에서 트루타입 글꼴을 처음 사용했다. 래스터화 메커니즘을 개선하고 효율성과 성능을 개선했습니다.
트루타입 파일 형식 사양
트루타입 글꼴 파일은 연결된 테이블 시퀀스로 구성된 이진 파일입니다. 각 테이블은 일련의 단어이며 ‘태그’라는 이름을 갖습니다. 각 태그는 uint32 데이터 유형이며 4개의 문자로 구성됩니다. 파일의 첫 번째 테이블은 글꼴 파일의 다른 테이블에 대한 액세스를 제공하는 글꼴 디렉토리입니다. 글꼴 데이터는 글꼴 디렉토리 테이블 다음에 오는 다른 테이블에 포함됩니다. 각 테이블은 해당 태그로 액세스할 수 있으므로 테이블은 파일에서 임의의 순서로 나타날 수 있습니다.
필요한 테이블과 해당 태그 이름은 다음 표에 나와 있습니다.
태그 | 표 |
---|---|
‘cmap’ | 문자 대 글리프 매핑 |
‘글리프’ | 글리프 데이터 |
‘머리’ | 글꼴 헤더 |
‘헤헤’ | 수평 헤더 |
‘hmtx’ | 수평 측정항목 |
‘로카’ | 위치에 대한 색인 |
‘최대’ | 최대 프로필 |
‘이름’ | 명명 |
‘게시’ | 포스트스크립트 |
데이터 유형
트루타입 글꼴은 다음 표에 나열된 표준 정수 및 추가 데이터 유형을 사용합니다.
데이터 유형 | 설명 |
---|---|
shortFrac | 16비트 부호 있는 분수 |
고정 | 16.16비트 부호 있는 고정 소수점 수 |
단어 | em 공간에서 측정 가능한 가장 작은 거리인 FUnits로 수량을 설명하는 16비트 부호 있는 정수 |
uFWord | em 공간에서 측정 가능한 가장 작은 거리인 FUnits로 수량을 설명하는 16비트 부호 없는 정수입니다. |
F2Dot14 | 소수를 나타내는 하위 14비트가 있는 16비트 부호 있는 고정 숫자입니다. |
긴 날짜 시간 | 1904년 1월 1일 자정 12:00부터 초 단위의 긴 내부 형식. 부호 있는 64비트 정수로 표시됩니다. |
글꼴 디렉토리
TrueType 글꼴의 첫 번째 테이블은 다른 테이블의 데이터에 액세스하는 데 필요한 정보에 대한 액세스를 제공하는 글꼴 디렉토리입니다. 또한 다음으로 구성됩니다.
오프셋 하위 테이블
- 글꼴로 테이블의 기록을 유지하고 디렉토리의 각 테이블에 액세스하기 위한 오프셋 정보를 제공합니다테이블 디렉토리
- 글꼴의 각 테이블에 대한 항목을 포함합니다.
오프셋 하위 테이블
오프셋 하위 테이블은 아래와 같습니다.
유형 | 이름 | 설명 |
---|---|---|
uint32 | 스케일러 유형 | 이 글꼴을 래스터화하는 데 사용할 OFA 스케일러를 나타내는 태그입니다. 자세한 내용은 아래의 스케일러 유형에 대한 참고 사항을 참조하세요. |
uint16 | numTables | 테이블 수 |
uint16 | 검색 범위 | (2 <= numTables의 최대 거듭제곱)*16 |
uint16 | 항목 선택기 | log2(2 <= numTables의 최대 거듭제곱) |
uint16 | 범위 이동 | numTables*16-searchRange |
테이블 디렉토리
테이블 디렉토리는 오프셋 하위 테이블 바로 뒤에 옵니다. 그 구조는 다음 표와 같습니다.
유형 | 이름 | 설명 |
---|---|---|
uint32 | 태그 | 4바이트 식별자 |
uint32 | 체크섬 | 이 테이블에 대한 체크섬 |
uint32 | 오프셋 | sfnt의 시작 부분에서 오프셋 |
uint32 | 길이 | 이 테이블의 바이트 길이(패딩된 길이가 아닌 실제 길이) |
글꼴 파일의 각 테이블에는 고유한 테이블 디렉토리 항목이 있어야 합니다. 테이블의 항목은 태그를 기준으로 오름차순으로 정렬되어야 합니다.