출처 : http://egloos.zum.com/einmong/v/5885619

UniteTTC-20100221_TTC폰트에서TTF추출.zip


- 사용법

# ttc 에서 ttf 추출

$> UniteTTC gulim.ttc
$> UniteTTC batang.ttc


# ttf 파일을 ttc로 묶음
$> UniteTTC gulim.ttc gulim001.TTF gulim002.TTF gulim003.TTF gulim004.TTF
$> UniteTTC batang.ttc batang001.TTF batang002.TTF batang003.TTF batang004.TTF


※ c:/windows/fonts 에서 ttc 파일에 포함되어 있는 폰트
gulim.ttc : 굴림(001), 굴림체(002), 돋움(003), 돋움체(004)
batang.ttc : 바탕(001), 바탕체(002), 궁서(003), 궁서체(004) 



[구글 어스의 메뉴 및 부가창 폰트 - 아리따 돋움]


이유도 방법도 여러가지가 있습니다. 생각날 때(화면의 저 굴림/돋움 폰트 좀 없애버리고 싶다고 느낄 때) 마다 검색 해 보고 또 따라 해 보기도 했지만, 여러가지 이유로 다시금 원상복귀시키곤 했습니다. 그러던 중 우연히 "사실 굴림체를 없애는 방법은 아주 간단합니다."라는 글을 보고, 방법을 정리해 둡니다.

굴림(체), 바탕(체) 폰트는 폰트 폴더(C:\Windows\Fonts)에 .ttc파일 형태로 제공되어 있습니다. 이는 하나의 파일에 복수의 폰트를 제공하기 위해 사용되는 TTF폰트 컬렉션 파일입니다.

- batang.ttc 파일에는 가변폭 글꼴인 바탕, 궁서, 고정폭 글꼴인 바탕체, 궁서체, 이렇게 4개의 TTF파일이 포함되어 있습니다.
- gulim.ttc 파일에는 가변폭 글꼴인 굴림, 돋움, 고정폭 글꼴인 굴림체, 돋움체 , 이렇게 4개의 TTF파일이 포함되어 있습니다.

적당한 고정폭 글꼴(특히, 셰리프 폰트)은 찾기가 어려워, 바탕은 바탕, 궁서 2종을 "아리따-부리"로, 굴림은 굴림, 돋움 2종을 "아리따-돋움"으로 바꿨습니다. 아래 보이는 UltraISO 스크린샷 처럼, 굴림으로 표기되는 프로그램들의 변화를 확인할 수 있습니다.

- Gulim & GulimChe & Dotum & DotumChe (TrueType) : gulim.ttc

- Batang & BatangChe & Gungsuh & GungsuhChe (TrueType) : batang.ttc

[# 1] 사용 도구

1) UniteTTC (TTC파일에서 TTF파일을 추출해주고, TTF파일 여러개를 TTC파일로 만들어 줍니다)
2) ttfname3 (TTF파일의 폰트 정보를 XML로 추출해주고, 추출한 폰트 정보를 다른 TTF파일에 덮어 씌워 줍니다)

[# 2] 사용 방법

UniteTTC
- TTF추출 : UniteTTC [추출할 폰트.TTC]
- TTC제작 : UniteTTC [생성할 폰트.TTC] [합칠 폰트1.TTF] [합칠 폰트2.TTF] ...

굴림 글꼴 모음 파일(gulim.ttc)에서 TTF 추출
- UniteTTC gulim.ttc
변경 완료된 폰트를 TTC파일로 제작
- UniteTTC gulim.ttc gulim001.TTF gulim002.TTF gulim003.TTF gulim004.TTF

TTFName
- TTF파일의 폰트 정보 추출 : ttfname3.exe [정보를 추출할 폰트.TTF] -o [저장될 정보 파일.XML]
- 정보파일을 원하는 폰트에 입히기 : ttfname3.exe [정보를 입힐 폰트.TTF] [폰트 정보파일.XML] -o [생성될 폰트.TTF]

추출한 굴림폰트(TTF)에서 폰트 정보를 추출. 굴림폰트(TTF)의 정보파일(XML)이 생성됨
- ttfname3.exe gulim001.TTF -o gulim001.xml
추출한 정보파일(XML)을 아리따-돋움 폰트(TTF)에 씌워 새로운 TTF파일 생성
- ttfname3.exe AritaDotumMedium.ttf gulim001.xml -o gulim001.ttf

[# 3] 다운로드

1. UniteTTC (2010.02.21) UniteTTC.zip
http://yozvox.web.fc2.com/556E697465545443.html

2. TTFName (3.0.2.0) TTFName 3.0.2.0.zip 

[# 4] TTF 추출

굴림 글꼴그룹(gulim.ttc)파일을 UniteTTC를 이용해 해체하면 gulim001.TTF / gulim002.TTF / gulim003.TTF / gulim004.TTF의 4개의 파일이 생성됩니다. 2, 4번 글꼴은 고정폭 글꼴인 굴림체와 돋움체입니다.

UniteTTC gulim.ttc

여기서는 가변폭 글꼴인 1번(굴림), 3번(돋움)의 정보를 추출합니다. ttfname을 이용해 gulim001.xml, gulim003.xml을 추출/생성합니다.

ttfname3.exe gulim001.TTF -o gulim001.xml
ttfname3.exe gulim003.TTF -o gulim003.xml


[# 5] TTF 생성

기존의 굴림, 돋움 TTF 폰트(gulim001.TTF, gulim003.TTF)는 삭제하고 아리따-돋움(AritaDotumMedium.ttf)폰트에 xml파일은 씌워 새로운 gulim001.TTF, gulim003.TTF를 생성합니다. 굴림, 돋움 모두 아리따-돋움으로 대체합니다.

del gulim001.TTF
del gulim003.TTF
ttfname3.exe AritaDotumMedium.ttf gulim001.xml -o gulim001.ttf
ttfname3.exe AritaDotumMedium.ttf gulim003.xml -o gulim003.ttf


[# 6] TTC 생성

기존의 굴림 글꼴그룹(gulim.ttc)파일을 삭제하고, 변경된 TTF파일로 새로운 TTC파일 생성합니다.

del gulim.ttc
UniteTTC gulim.ttc gulim001.TTF gulim002.TTF gulim003.TTF gulim004.TTF


[# 7] 시스템의 굴림 폰트 제거

아래와 같은 방법으로 윈도우 상의 (기존에 설치된) 굴림 폰트를 제거할 수 있습니다. (원본 파일은 C:\에 이동 저장)

takeown /F %windir%\Fonts\gulim.ttc /A
icacls %windir%\Fonts\gulim.ttc /grant Administrators:F
move %windir%\Fonts\gulim.ttc C:\


[# 8] 굴림 폰트 설치 & 폰트 캐시 제거 & 리부팅

새롭게 만든 굴림폰트(gulim.ttc)를 설치한 후, FNTCACHE.DAT파일을 제거, 리부팅을 하면 완벽하게 적용됩니다.

del C:\Windows\System32\FNTCACHE.DAT

구글어스의 메뉴폰트 바꾼게 제일 시원합니다.


Polyfill

홈페이지 : https://polyfill.io


- 특정 기능이 지원되지 않은 브라우저를 위해 사용할 수 있는 코드 조각이나 플러그인을 말함. Polyfill은 HTML5 및 CSS3를 사용하는데 있어 오래된 브라우저 사이의 간격을 메꾸는 역할을 함

자동으로 로드되는 polyfill : https://cdn.polyfill.io/v2/docs/
        

아래처럼 polyfill 을 로드하면 브라우저에 맞는 스크립트가 출력된다. 크롬이나 파이어폭스가 로딩하면 코드는 거의 없고 IE에서 로드하면 코드가 많이 나온다.

<!-- 브라우저 환경에 맞게 자동으로 스크립트 로딩 -->
<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>

<!-- 브라우저에 상관없이 전체 소스 로딩 -->
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=default|always"></script>

<!-- Promise 만 로딩 -->
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Promise|always"></script>



HTML5 Cross Browser Polyfills
Modernizr 측에서 정리하여 제공하고 있는 각종 폴리필 목록을 참고하면 원하는 기술을 선택하는데 도움이 될 것이다.

html5shiv : HTML5의 섹셔닝 요소(예: <header>, <nav>)를 지원하지 않는 브라우저를 위한 라이브러리
mediaelement.js : HTML5의 <video>와 <audio> 요소들을 모든 브라우저에서 하나의 파일로 같은 UI를 제공하기 위한 라이브러리
Placeholder : HTML5의 플레이스홀더(placeholder)의 지원을 통일하기 위해서 제공하는 라이브러리
h5Validate : HTML5의 폼검증 기능을 구현하기 위해 제공하는 라이브러리
selectivizr : CSS3의 의사 클래스(pseudo-class)와 속성 선택자들을 IE6~8에서 지원하기 위한 라이브러리
css3pie : CSS3의 border-radius와 box-shadow, liner-gradient를 IE6~9 브라우저에서 지원하기 위한 라이브러리
Respond : 반응형 웹의 필수 속성중에 하나인 미디어쿼리를 IE6~8에서 지원하기 위한 라이브러리

더 많은 polyfill : https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills



Modernizr
- 사용자의 브라우저가 현재 가지고 있는 HTML5, CSS 기능들을 감지하고 지원여부를 판별하는 Javascript 라이브러리 임. 다양한 브라우저에서 지원되는 기능을 하나씩 확인해가면서 개발하는 것은 현실적으로 불가능하기 때문에 Modernizr와 같은 라이브러리를 통해 필요기능을 감지하고 지원 여부에 따라 개발자가 동적으로 처리를 달리할 수 있음

홈페이지 : https://modernizr.com/
Github : https://github.com/Modernizr/Modernizr


========================================================================================================

Object doesn't support property or method 'assign'

IE Object.assign 오류 시 polyfill

if (!Object.assign) {
Object.defineProperty(Object, 'assign', {
            enumerable: false,
    configurable: true,
    writable: true,
    value: function(target) {
    'use strict';
    if (target === undefined || target === null) {
    throw new TypeError('Cannot convert first argument to object');
    }
    var to = Object(target);
    for (var i = 1; i < arguments.length; i++) {
    var nextSource = arguments[i];
    if (nextSource === undefined || nextSource === null) {
    continue;
    }
    nextSource = Object(nextSource);
    var keysArray = Object.keys(Object(nextSource));
    for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
    var nextKey = keysArray[nextIndex];
    var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
    if (desc !== undefined && desc.enumerable) {
    to[nextKey] = nextSource[nextKey];
    }
    }
    }
    return to;
    }
});
}


+ Recent posts