성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Get Started with Milvus Vector DB i...
[정성태] cyberark/PipeViewer - A tool that...
[정성태] WinForms in a 64-Bit world – our st...
[정성태] 예제에서 SELECT_SQL도 내부적으로는 SqlCommand/...
[victor] SELECT_LINQ SELECT_SQL 같은 쿼리인...
[victor] 답변 갑사합니다. 예외(Exception)가 났습니다. ...
[정성태] 일단, 위의 방식대로 하면 예외(Exception) 없이 잘 동...
[정성태] Windows 10 (버전 1809)에 이런 기능이 ^^ 추가되...
[정성태] pde windbg extension ; https://lea...
[정성태] // GetEnumerator extensions for Ran...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>파이썬 - 윈도우 환경에서 pytagcloud의 한글 출력 방법</h1> <p> pytagcloud에서 한글 태그를 출력하려면, 한글이 지원되는 폰트를 pytagcloud가 요구하는 디렉터리에 놓아야 합니다. 이를 위해, 우선 pytagcloud가 설치된 디렉터리를 알아야 하는데요, 간단하게 파이썬에서 다음과 같이 호출할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > import pytagcloud print(<span style='color: blue; font-weight: bold'>pytagcloud.__path__</span>) // "pip install pytagcloud"로 설치된 경로 출력 </pre> <br /> 예를 들어, 출력 결과가 다음과 같이 나왔다고 가정하면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ['C:\\Anaconda3\\lib\\site-packages\\pytagcloud'] </pre> <br /> 폰트 파일은 저 경로의 하위 "fonts" 디렉터리에 위치해야 합니다. 그렇다면 이제 한글 폰트만 구하면 되는데요, 윈도우 사용자라면 "C:\Windows\Fonts" 디렉터리에 가득하니 ^^ 다음과 같이 복사해 주시면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // 대상 디렉터리가 일반 사용자 계정으로 쓰지 못하는 곳이면 "관리자 권한"의 cmd 창에서 실행 C:\temp> <span style='color: blue; font-weight: bold'>robocopy c:\windows\fonts C:\Anaconda3\Lib\site-packages\pytagcloud\fonts malgun*.ttf</span> </pre> <br /> 그런데, 이렇게 복사해도 create_tag_image를 실행할 때 "fontname" 인자를 (어떤 이름으로 줘야 할 지도 불분명하지만) 줘도,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > pytagcloud.create_tag_image(tag_list, 'test.jpg', size=(300,300), <span style='color: blue; font-weight: bold'>fontname='malgun.ttf'</span>, rectangular=True) </pre> <br /> 이런 오류가 발생할 것입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Traceback (most recent call last): File "C:/pycharm/work/pytest/main.py", line 10, in <module> pytagcloud.create_tag_image(tag_list, 'test.jpg', size=(300,300), fontname='malgun.ttf', rectangular=True) File "C:\Anaconda3\lib\site-packages\pytagcloud\__init__.py", line 344, in create_tag_image rectangular=rectangular) File "C:\Anaconda3\lib\site-packages\pytagcloud\__init__.py", line 275, in _draw_cloud tag_sprite = Tag(tag, (0, 0), fontname=fontname) File "C:\Anaconda3\lib\site-packages\pytagcloud\__init__.py", line 59, in __init__ self.font_spec = load_font(fontname) File "C:\Anaconda3\lib\site-packages\pytagcloud\__init__.py", line 102, in load_font ", ".join([f['name'] for f in FONT_CACHE])) AttributeError: Invalid font name. Should be one of Nobile, Old Standard TT, Cantarell, Reenie Beanie, Cuprum, Molengo, Neucha, Philosopher, Yanone Kaffeesatz, Cardo, Neuton, Inconsolata, Crimson Text, Josefin Sans, Droid Sans, Lobster, IM Fell DW Pica, Vollkorn, Tangerine, Coustard, PT Sans Regular </pre> <br /> 왜냐하면, 파일 복사만으로는 pytagcloud가 이를 인식하지 못하기 때문입니다. 따라서 다음의 경로에 있는 fonts.json 파일을 (메모장 등으로) 열어,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\Anaconda3\Lib\site-packages\pytagcloud\fonts\fonts.json </pre> <br /> 다음과 같이 새로운 항목을 추가해 줍니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > [ ...[생략]... { "name": "PT Sans Regular", "ttf": "PT_Sans-Regular.ttf", "web": "http://fonts.googleapis.com/css?family=PT+Sans" }<span style='color: blue; font-weight: bold'>,</span> <span style='color: blue; font-weight: bold'>{ "name": "Malgun Gothic", "ttf": "malgun.ttf", "web": "https://www.wfonts.com/font/malgun-gothic" }</span> ] </pre> <br /> (주의: 마지막 항목 바로 전의 쉼표(,) 구분을 잊으면 안 됩니다.)<br /> <br /> 위의 내용에 보면 "name"을 (임의로 설정할 수 있는) "Malgun Gothic"으로 했는데요, 따라서 그 이름을 사용해 create_tag_image에 폰트 이름을 전달하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > pytagcloud.create_tag_image(tag_list, 'test.jpg', size=(300,300), <span style='color: blue; font-weight: bold'>fontname='Malgun Gothic'</span>, rectangular=True) </pre> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1305
(왼쪽의 숫자를 입력해야 합니다.)