우선 제가 대답드리기 조심스러운 부분이 있기는 합니다. 제가 안된다고 했다고 절대로 안 되는 게 아니라, 되는 방법을 제가 못 찾은 것일 수도 있다는 생각 때문입니다. 그래도 제 관점에서 되고 안 되고는 말씀드릴테니, 참고만 해 주시기 바랍니다.
1. 한/글 버전을 선택해서 열 수 있나?
어렵습니다.
다만 최신버전의 한/글이 열리는 게 아니라, (버전이 낮더라도) 최근에 설치한 한/글이 열린다는 점 유의해주세요.
2. AdobePDF, EZ_PDF 등 다른 PDF드라이버 지정 가능한지?
가능합니다. 다만 파이썬 단에서 설정을 바꾸는 건 굉장히 번거로운 일이기 때문에 아래 방법을 추천드립니다.
가장 간편한 방법은, 환경설정의 <기타>탭 하단에 PDF드라이버 선택 메뉴를 활용하는 방법입니다.
그밖에도 한/글 액션 중 "Print" 를 사용해서 드라이버를 선택할 수 있는데,
예를 들면 이런 식입니다. 근데 명령을 실행했을 때 팝업이 뜨기 때문에 번거롭습니다ㅜ
def hwp_print(driver="Hancom PDF"):
act = hwp.CreateAction("Print")
pset = act.CreateSet()
act.GetDefault(pset) # 프린트 파리미터 초기화
pset.SetItem("Range", 4) # 인쇄범위, 4 == hwp.PrintRange("Custom")
pset.SetItem("RangeCustom", "1") # 사용자가 직접 입력한 인쇄 범위
pset.SetItem("UsingPagenum", 1) # 한 쪽, 현재쪽 선택인쇄할 때 사용하는 라인
pset.SetItem("NumCopy", 1) # 인쇄매수
pset.SetItem("PrintMethod", 0) # 인쇄 방법(모아찍기 아닌 보통인쇄)
pset.SetItem("PrinterName", driver) # 프린터 선택(파라미터에서 지정)
pset.SetItem("PrintToFile", 0) # 인쇄 결과를 파일로 저장
pset.SetItem("ReverseOrder", 0) # 역순 인쇄
pset.SetItem("Pause", 0) # 끊어 찍기 매수
pset.SetItem("PrintImage", 1) # 그림 개체
pset.SetItem("PrintDrawObj", 1) # 그리기 개체
pset.SetItem("PrintClickHere", 0) # 누름틀
pset.SetItem("Device", 0) # 프린터 장치(PDF, PNG 포함)
pset.SetItem("PrintFormObj", 1) # 양식 개체 출력여부
pset.SetItem("PrintMarkPen", 0) # 형광펜 출력여부
pset.SetItem("PrintMemo", 0) # 메모 출력여부
pset.SetItem("PrintMemoContents", 0) # 메모 내용 출력여부
pset.SetItem("PrintRevision", 1) # 교정부호 출력여부
item_set = pset.CreateItemSet("PrintWatermark", "PrintWatermark") # 워터마크 서브 프로퍼티 설정
item_set.SetItem("WatermarkType", 0)
act.Execute(pset)
하여튼 PDF드라이버 선택은 위의 환경설정에서 변경하시면 될 것 같습니다.
※ [2022. 9. 21.] 훨씬 간편하고 좋은 방법이 있었습니다. 아래 포스팅에서 다루겠습니다.
(삽입예정)
3. 하위폴더의 hwp파일을 전부 선택하는 방법?
이것도 간단합니다. 바로 os모듈의 walk 메서드를 사용하는 건데요.
아래 예제코드를 참고하시기 바랍니다.
def 하위폴더의_hwp까지_검색(경로명):
hwp_list = []
for dirpath, dirnames, filenames in os.walk(경로명):
for filename in filenames:
if filename.endswith(".hwp"):
hwp_list.append(os.path.join(dirpath, filename))
else:
pass
return hwp_list
한글파일목록 = 하위폴더의_hwp까지_검색(r"C:\Program Files (x86)\HNC\Office 2020\HOffice110\Shared\HwpTemplate\Style\en-US")
print(한글파일목록)
위 명령 실행시 제 PC에서 한글파일목록 리스트는 아래와 같이 저장됩니다.
['C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Book\\Book1.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Book\\Book2.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Book\\Book3.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Book\\Book4.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Book\\Book5.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Letter\\Letter1.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Letter\\Letter2.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Letter\\Letter3.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Letter\\Letter4.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Letter\\Letter5.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Paper\\Paper1.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Paper\\Paper2.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Paper\\paper3.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Present\\Present1.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Present\\Present2.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Present\\Present3.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Present\\Present4.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Present\\Present5.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Report\\Report1.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Report\\Report2.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Report\\Report3.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Report\\Report4.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Thesis\\Thesis2.hwp',
'C:\\Program Files (x86)\\HNC\\Office 2020\\HOffice110\\Shared\\HwpTemplate\\Style\\en-US\\Thesis\\Thesis3.hwp']
그러면 한/글 파일을 여는 코드를 이런 식으로 변경해주시면 되겠죠?
for 한글파일 in 한글파일목록:
hwp.Open(한글파일) # 이런저런 작업 또는 PDF저장하는 코드 등
hwp.Clear(option=1) # 수정내용을 버리는 경우 #
hwp.Save() # 수정내용을 저장하고 싶은 경우에는 Clear 대신 Save 실행
hwp.Run("FileClose") # 문서 닫기
행복한 하루 되세요^^
'아래아한글 자동화 > python+hwp 중급' 카테고리의 다른 글
"파이썬(아래한글) 실행중 오류를 해결할 수 없어 문의드립니다." (6) | 2021.07.21 |
---|---|
워드의 특수문자 단축키 지정, 한/글로는 어떻게 구현할까? (0) | 2021.07.08 |
[PySide6 GUI] 체크버튼으로 한/글 열고 닫기 (1) | 2021.07.06 |
댓글