2010-12-03 6 views
5

폰트 이름이 주어지면 Linux에서 ttf 폰트 파일의 절대 경로를 얻을 수 있기를 원합니다. 해당 정보를 반환하는 명령 또는 API가 있습니까?리눅스에서 폰트 찾기 (C++에서)

예를 들어, "arial.ttf"가 주어지면 어디서나 절대 경로 (예 : /usr/share/fonts/truetype/msttcorefonts/arial.ttf)를 찾고 싶습니다.

+0

가능한 중복 [C 또는 C++을 사용하여 Linux에 설치된 트루 타입 글꼴 목록을 얻는 방법?] (http://stackoverflow.com/questions/203257/how-to-get-a-list-of- installed-true-type-fonts-on-linux-using-c-or-c) –

답변

5

가장 쉬운 방법은 --format 옵션 fontconfig을 사용하는 것이 아마도 :

$ fc-match --format=%{file} LiberationSans-Regular.ttf 

/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf 

대신 글꼴 파일 이름의 출력에 발생합니다, 당신은 또한 글꼴 설명을 제공 할 수 있습니다 mono, DejaVu, :weight=bold, DejaVu-12 또는 DejaVu:weight=bold 일 수 있습니다. 내 시스템에

/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf 

에 따라서, 예를 들어,

$ fc-match --format=%{file} :weight=bold 

결과. 작동하지 않는 유일한 방법은 글꼴 파일의 전체 경로를 제공하는 것입니다.

+0

어떻게 글꼴 설명을 제공 할 수 있습니까? 제발 몇 가지 예를 들어 주시겠습니까? – Mohan

+0

@ 모한 말했듯이 : 그냥 파일 이름을 글꼴 설명으로 바꿉니다. 지금 글꼴 설명에 대한 작업 예제를 추가했습니다. 희망이 도움이됩니다. – cmaster

0

아마도 경로를 통해 글꼴에 액세스하려고 시도하는 것은 좋지 않습니다. 리눅스 글꼴 스택은 이런 식으로 설계되지 않았습니다. 위치에 안정성이 없으며 사용자가 글꼴 목록에서 기대하는 많은 "글꼴"이 단일 글꼴 파일에 매핑되지 않고 여러 글꼴 파일의 합성물입니다.

다른 모든 데스크탑 응용 프로그램과 일관성을 유지하려면 모든 글꼴 응용 프로그램에서 글꼴 선택이 동일하게 작동해야한다고 생각하면 fontconfig 간접 계층을 통해 패턴별로 글꼴에 액세스해야합니다 (pango-cairo, 또는 QT) 결과를 받아들이는 것은 복잡하고 직관적이지 않을 수 있습니다.

직관적 인 것보다 덜 중요하게 여겨지는 것은 중요하지 않습니다. 글꼴 선택이 다른 모든 앱에서와 같은 방식으로 작동한다는 것만 중요합니다. 그리고 보통 fontconfig 매핑 선택에 대한 좋은 이유가 있습니다.

관련 문제