강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

양현주님의 프로필 이미지
양현주

작성한 질문수

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

질문을 남겨주세요.

한글 문서에 사용된 폰트명 추출

작성

·

233

1

안녕하세요. 업무를 하다 필요한 기능이 있어서 여쭤봅니다.

한글 문서들이 여러 개가 하나의 폴더에 들어 있을 때 각각의 파일에 사용된 폰트명을 하나의 파일로 다음과 같이 추출하는 방법을 알고 싶습니다.
[예 폰트명 파일.txt]
문서1.hwp: 함초롱바탕, 맑은고딕
문서2.hwp: 함초롱바탕, 고딕
문서3.hwp: 바탕, 신명조, 고딕
......
문서정보에 있는 폰트명을 가져오면 될 것 같은데, 그 정보를 가져오지 못하고 계속 실패를 하네요.
감사합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 양현주님.

한글 문서에서 사용된 폰트명을 추출하려는 시도는 매우 유용한 작업이 될 수 있습니다. 한글 문서에서 폰트 정보를 가져오는 것은 파이썬과 pywin32 라이브러리를 이용해 가능합니다. 아래에 간단한 방법론을 소개해드리고, 유사한 질문에 대한 답변 링크를 첨부합니다.

Python Script with pywin32

한글 파일의 폰트를 추출하기 위한 접근 방식은 대략적으로 다음과 같이 진행할 수 있습니다:

  1. pywin32 설치: 먼저 pywin32를 설치해야 하며, 이 라이브러리를 통해 아래한글의 COM 객체에 접근할 수 있습니다.
   pip install pywin32
  1. 한글 파일 열기 및 폰트 정보 읽기: COM 객체를 사용하여 한글 파일을 열고 스타일을 확인할 수 있으며, 각 스타일에서 폰트 정보를 추출할 수 있습니다.

다음은 간단한 예시 코드입니다. 코드에서 hwp.XHwpXFont 메서드를 통해 사용된 폰트를 식별합니다.

import win32com.client as win32

def extract_fonts_from_hwp(file_path):
    hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
    hwp.Open(file_path)
    
    fonts = set()
    for i in range(1, hwp.XHwpDocuments.Count + 1):
        doc = hwp.XHwpDocuments[i]
        for j in range(1, doc.XHwpXFont.Count + 1):
            font = doc.XHwpXFont.Item(j).Name
            if font:
                fonts.add(font)
    
    hwp.XHwpDocuments.Close()
    return fonts

# Example usage:
file_path = "C:/path/to/your/file.hwp"
fonts = extract_fonts_from_hwp(file_path)
print(fonts)
  1. 결과 저장: 여러 파일에 대해 위 과정을 반복하여 폰트 정보를 수집하고, 결과를 텍스트 파일로 출력합니다.

유사한 문제에 대한 추가 힌트를 받고 싶으시면, 다음의 유사 질문들을 참고하실 수 있습니다:

즉, 위 코드와 링크된 자료를 참고하시어 한글 문서의 폰트를 추출하시면 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

양현주님의 프로필 이미지
양현주

작성한 질문수

질문하기