본문 바로가기

아래아한글 자동화/python+hwp 중급182

한/글 프로그램 없이 hwp->pdf 변환하기 혹시 한글 프로그램 없이 hwp->hwpx 변환 또는 hwp->pdf 변환이 가능한가요? 가끔 읽어야하는 문서가 hwp 파일인 경우가 있는데 한글 프로그램이 없어서 난처한 경우가 많습니다🥲 많은 분들이 짐작하셨겠지만 한글과컴퓨터 오피스온라인에 대한 포스팅입니다. 데스크탑 어플리케이션에 가깝게 만들어진, 한컴에서 제공하는 정말 유용한 웹앱인데요. 이번 포스팅에서는 한컴오피스 온라인을 통한 파일변환 방법에 대해 알려드리겠습니다. 천천히 따라해 주시기 바랍니다. 1. 한컴독스 사이트에 접속합니다. 한글과컴퓨터에서 새롭게 제공하는 웹페이지입니다. 한컴독스 (hancomdocs.com) 한컴독스 매 순간 어디서든지 최신 버전으로 문서 작성 가능한 구독형 한컴오피스 www.hancomdocs.com 2. 좌측의 파.. 2022. 12. 18.
[QnA] 그림개체의 개체설명문 가져오기 보호되어 있는 글 입니다. 2022. 12. 10.
hwp 표 캡션 서식 일괄 수정하기 이번 포스팅에서는 모든 표들의 캡션 텍스트 또는 서식을 파이썬으로 일괄 수정하는 방법을 알려드리겠습니다. 예제는 다소 간단하게, 아래처럼 표 하단 좌측으로 정렬되어 있는 캡션을 아래처럼 상단 중앙으로 옮기는 코드입니다. hwp문서 안에서 표 캡션을 수정하려면 다소 번거롭습니다. 대부분은 직접 마우스로 클릭하실 거고, (저도 그렇습니다) 실수로 표 옆이나 표 안에서 Ctrl-N-C 같은 단축키를 누르면 캡션이 없어져버리기 일쑤입니다ㅜ 특히 보고서나 논문(논문을 hwp로 작성하시는 분들이 많지는 않겠지만..) 작성시에는 분량이 큰 경우가 많은데, 표의 갯수가 어마어마할 때도 있지요. 샘플 문서를 하나 만듭시다. 빈 문서에다 표를 임의로 세 개만 만들겠습니다. (단축키는 Ctrl - New-Table) 여러분.. 2022. 12. 9.
[QnA] 표 너비 조절이 되지 않습니다. 이전 버전까지는 정상적으로 사이즈가 정상적으로 반영되었는데 특정패치이후에 안됩니다. 일시적인 버근줄알았는데 2022까지 계속 이어지네요. 문서의 width, widthRelTo를 적용해봐도 동일하게 용지사이즈만큼 늘어납니다. 질문출처 : 한글과컴퓨터 - 개발자 커뮤니티 이런 문제들은 대체로 이런 문제들은 대체로 필요한 파라미터 몇 개가 빠져 있어서 생깁니다. 표 생성시 필요한 파라미터가 굉장히 많기도 하고요. 프로그램에서 표를 만들면 행, 열의 수만 입력하고 엔터를 치면 표가 만들어지지만 이 간단한 과정을 매크로로 녹화해보면 깜짝 놀라게 됩니다. 코드가 너무 길거든요. 1행1열의 표를 삽입하는 매크로는 아래와 같습니다. function OnScriptMacro_중국어1성() { HAction.GetDef.. 2022. 12. 9.
[HDMI] 최종화 : 취합문서 스타일 교정 보호되어 있는 글 입니다. 2022. 12. 8.
[HDMI] 비슷한 문자열 매치 (by difflib.SequenceMatcher) 지난 포스팅까지, 스타일 이름을 가져오는 과정을 마쳤습니다. 이번에는 유사하지만 미묘하게 다른 단어들끼리 매칭할 때 많이 사용되는 파이썬 내장모듈인 difflib의 SequenceMatcher를 활용하는 방법을 알려드리겠습니다. 지금까지 이 고생을 해서 스타일 이름을 가져온 이유를 다시 상기해보면, 취합문서의 스타일 이름이 템플릿문서 대비 전부 미묘하게 바뀌어 있고 특히 템플릿의 스타일과 취합문서의 스타일 순서가 뒤죽박죽이 되어버렸기 때문입니다. (극단적인 예를 들었습니다.) 위 엑셀파일에는 취합문서 스타일의 이름이 템플릿 문서의 스타일과 전부 다릅니다. 여기 SequenceMatcher를 도입하면 어떨까? 그럼 SequenceMatcher의 사용법에 대해 간략히 보여드리겠습니다. 사실 SequenceM.. 2022. 12. 7.
[HDMI] 진짜 본격적으로 header.xml 파헤쳐보기 자, 이제 모든 준비가 끝났...다고는 말할 수 없지만 본격적으로 header.xml을 분석해보겠습니다. 왜 아직 모든 준비가 끝나지 않았냐면, 한/글의 xml 파일들은 "네임스페이스"라는 일종의 축약어를 사용하는데, 예를 들면, header.xml의 시작부분은 아래와 같습니다. 뾰족괄호와 콜론(:) 사이의 "hh"가 네임스페이스인데요. head 태그 안에 보면 xmlns:hh="http://www.hancom.co.kr/hwpml/2011/head" 라는 문구가 있습니다. xmlns 는 xmlNameSpace의 약자로, 이 문서 내 는 모두 실제 태그이름이 로 치환됩니다. iter() 메서드나 findall() 메서드 이용시 "hh:태그"로는 탐색이 되지 않기 때문에 1. 직접 저렇게 길게 입력하거나 .. 2022. 12. 7.
[HDMI] 본격적으로 xml 파헤쳐보기 지난 포스팅에서는 hwp 파일을 hwpx로 포맷변환하고, 압축을 푸는 과정을 진행해보았습니다. 이번 포스팅은 본격적으로 xml 파헤쳐보기 입니다. xml파일을 파싱하는 라이브러리는 여러 개가 있지만 우리는 xml파서의 큰형님(?)이라 불릴 수 있는 내장 패키지인 xml을 이용해보겠습니다. 그 중에서도 ElementTree라는 모듈을 사용할건데요. (ElementTree 외에도 xml 패키지 안에는 dom, parsers, sax 등의 서브패키지가 포함되어 있습니다.) 그 전에 우리가 파헤칠 header.xml 문서를 한 번 열어나 보고 시작하자구요. 포맷변환이나 압축해제 등 이전 과정을 건너뛰고 파싱에만 관심 있으신 분은 아래 첨부한 header.xml 파일만 다운받아서 실습을 진행해주시면 되겠습니다. .. 2022. 12. 7.
[HDMI] hwp를 hwpx로 포맷변환하고 압축 풀기 제목이 거창해 보이지만 사실 굉장히 간단한 프로세스입니다. 1. hwp를 hwpx로 포맷변환(다른 이름으로 저장) 2. hwpx파일 압축해제 이러면 제목이랑 똑같잖아!ㅜ 위 두가지 기능을 각각 구현해보겠습니다. 1. 다른이름으로 저장 한글에서 제공하는 API를 형식별로 크게 나누면 네 가지 정도가 있습니다. ①일반적인 메서드, ②프로퍼티, ③파라미터가 필요한 액션, 그리고 ④파라미터가 필요없는 액션 다른이름으로 저장하기 기능은 함수 형태의 메서드로도 구현되어 있습니다. hwp.SaveAs(파일명, 포맷)입니다. import win32com.client as win32 FILE_PATH = r"C:\Users\smj02\OneDrive\바탕 화면\빈 문서1.hwp" hwp = win32.gencache.E.. 2022. 12. 7.