작성
·
57
1
답변 1
2
2024. 09. 06. 20:19
안녕하세요? 회신이 늦었습니다^^;
제가 vscode에 익숙하지 않은 관계로,
분명 더 좋은 방법이 있을 수 있다는 점을 먼저 밝힙니다ㅜ
우선 아래 코드로 hwp 객체를 만들었다는 가정하에
import win32com.client as win32
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True
hwp.
까지 입력하시고 Ctrl-Space를 누르시면 자동완성 목록이 뜨잖아요?
근데 이게 모든 메서드와 프로퍼티가 뜨지 않습니다..
예를 들면 .CharShape
은 뜨는데, hwp.XHwpWindows
는 한 번에 뜨지 않고 타이핑을 한 후에야 뜬다든지,
hwp.XHwpWindows.
이하로는 전혀 못 잡아주는 문제들..
이게 상당히 불편한 부분인데,
제가 자주 사용했던 세 가지 방법을 알려드려보겠습니다.
(기본적인 방법들이라 다 아시는 내용일 수 있어요ㅜ)
dir 함수로 아예 멤버 리스트를 확인해버리는 방법인데요.
아래와 같은 방식으로 사용합니다.
이것도 나름의 방법인데 될 때도 있고 안 될 때도 있는 것 같고 그래요....;
이건 자동완성을 보완하는 방법은 아니지만, 하여튼 추천드리는 방법입니다.
임포트하고 hwp인스턴스 생성하는 부분만 아래처럼 변경하시면,
나머지 인터페이스는 기존의 한/글 오토메이션API와 동일하므로 불편함 없이 사용하실 수 있을 겁니다.
hwp의 멤버들은 우선 거의 모두 자동완성으로 보여주는데요. (직접 매핑작업을 했기 때문입니다..)
from pyhwpx import Hwp
hwp = Hwp()
특히, 기존의 Run 액션들은 문자열을 통해 명령하는 방식 때문에 자동완성이 되지 않아 번거로운데
pyhwpx에서는 전부 동일한 이름의 메서드로 매핑해놓은 덕분에 자동완성이 됩니다.
(노가다의 산물ㄷㄷ)
예를 들어 hwp.HAction.Run("SelectAll")
이라는 액션은 hwp.SelectAll()
로 실행할 수 있기 때문에
자동완성으로 코드를 짜기 훨씬 수월한 편입니다.
사실... 파이참에서는 Ctrl-Shift-Space로 제법 잘 잡아주거든요...
(그래서 위 방법들을 대부분 쓰지 않습니다;)
좌: VSCode, 우:Pycharm Professional
분명 vscode에도 좀 더 똑똑한 자동완성 기능이 따로 있을 겁니다.
하여튼 이런 방법들이 있어요.
혹시 더 좋은 방법을 발견하면 즉시 댓글로 남겨두겠습니다.
도움이 되었기를 바랄게요ㅋ
강의 수강해주셔서 감사드립니다.
질문 많이 남겨주세요! 제가 아는 선에서 최대한 상세히 설명을 남겨놓겠습니다.
행복한 하루 되세요^^
2024. 09. 07. 10:03
상세하고도 성의있는 답변에 감사드립니다.
충분히 만족하고 선생님 답변 덕분에
많은 시간이 절약될 것 같습니다. ^^