또 문서1의 또다른 내용 일부를 복사해서 문서2에 추가로 붙여넣기
하는 파이썬 코드를 짜고 싶습니다.
hwp.Open() 으로 코드를 짜봤는데, 대충 요약하자면
hwp.Open(“문서1.hwp”) #문서1을 열고,
for _ in range(5):
hwp.HAction.Run(“TableLowerCell”)
for _ in range(2):
hwp.HAction.Run(“TableRightCell”) #저장된 캐럿 위치에서 화살표 키로 움직인 후(문서1은 SetPos로 좌표를 찍기 어려운 상황의 파일인지라)
hwp.HAction.Run(“Copy”) #문서1의 내용을 선택했다 치고 복사한 후,
이 다음에 다시 문서 1로 창을 전환하여 화살표 키로 움직였던 캐럿의 그 마지막 위치에서 다시 캐럿 이동을 시작하고 싶은 건데… (alt + tab 하듯이…)
문서1로의 창 전환을 할때는 어떤 코드를 사용해야 하나요?
다시 hwp.Open(“문서1.hwp”)를 쓰게 되면 캐럿의 위치가 초기 상태로 돌아가서 귀찮아지더라구요
조금 횡설수설 하지만…
복사를 할 때마다 ctrl+s 를 하는 방법도 생각해봤지만 코드가 좀 지저분해질 것 같아 질문 올리게 되었습니다.
C++로 두 문서를 핸들링하는 샘플 예제를 작성했습니다.
참고하셔서 파이썬으로 응용해서 작성해보세요.
(m_app == hwp 동일한 개체임)
CXHwpDocuments documents = m_app.get_XHwpDocuments();
// 한글이 처음 실행됐을 때 활성화된 문서 개체를 구함
CXHwpDocument doc1 = documents.get_Active_XHwpDocument();
// 새로운 창을 열어서 문서 개체를 한 개 생성
CXHwpDocument doc2 = documents.Add(FALSE);
// doc1, doc2의 id를 임의로 가져와 봄
// 추후에 documents에서 인덱스로 접근하고자 할 때 사용할 수 있음
long doc1id = doc1.get_DocumentID();
long doc2id = doc2.get_DocumentID();
// doc1에서 문서를 오픈
doc1.Open(_T("c:\\1.hwpx"), COleVariant(_T("")), COleVariant(_T("")));
// doc2에서 문서를 오픈
doc2.Open(_T("c:\\2.hwpx"), COleVariant(_T("")), COleVariant(_T("")));
// doc1 창 활성화
doc1.SetActive_XHwpDocument();
// TODO : doc1에서 하고자 하는 동작 구현
// m_app.함수 호출
//doc2 창 활성화
doc2.SetActive_XHwpDocument();
// TODO : doc2에서 하고자 하는 동작 구현
// m_app.함수 호출