[1] 한글 오토메이션입니다.
[2] MFC (Visual C++) 환경입니다.
[3] (중요) 다른 한글 오피스 버전은 문제가 없고, 한글 오피스 2024에만 해당합니다.
CHwpObject의 SetTextFile(varHML, _T(“HWPML2X”), _T(“insertfile”));을 사용해서 표의 HML 문자열을 입력하면, 약 80% 빈도(혹은 그 이상)로, 세로로 표가 2~4번 입력됩니다.
현재 빈도 정도면, 포럼 자체에서도 확인 가능해서 글부터 작성합니다.
가능하면, 단위 샘플도 만들어볼 예정이긴 합니다.
재현되셨는지 알려주시면 좋겠습니다.
저희가 확인한 시나리오에서는 A문서에서 표에 해당하는 HML파일을 얻어서 B문서에 입력(SetTextFile)하는 시나리오 입니다.
같은 문서 상에서 SetTextFile하는 시나리오와 다른 문서 상에서 SetTextFile하는 시나리오는 다를 수도 있기 때문에 공유드립니다.
1개의 좋아요
HML파일 아니고 HML문구입니다. 글을 쓴 후, 다시 보니까, 잘못 쓴 부분이 발견되어서 언급합니다.
1개의 좋아요
안녕하세요.
재현 시나리오를 정리하면,
① 표가 있는 A.hml 문서를 B문서에 SetTextFile(_T(“A.hml”, _T(“HWPML2X”), _T(“insertfile”));
② “HML” 문자열 입력
<발생 현상>
B문서에 삽입된 A.hml 문서의 표가 세로로 입력됨
@user106
재현 시나리오와 발생 현상이 맞는지 확인 부탁드립니다.
세로로 표가 입력된다는 현상이 어떤 것인지 캡쳐 화면으로 보여주시면 답변 드리는데 도움될 것 같습니다.
감사합니다.
1개의 좋아요
원문입니다.
SetTextFile로 붙여 넣은 문서입니다.
2개의 좋아요
제가 조금 더 확인해보겠습니다. 확인하지 말고 계세요.
1개의 좋아요
SetTextFile(_T(“A.hml”, _T(“HWPML2X”), _T(“insertfile”));
을 사용해서
“표”-“기본”-"글자처럼 취급"을 해제하거나, “표”-“표”-"여러 쪽 지원"에서 "나눔"이나 "셀 단위로 나눔"을 하면,
상단에서 언급한 현상이 발생합니다.
태그로 보면,
<TABLE BorderFill="3" CellSpacing="0" ColCount="3" PageBreak="Table" RepeatHeader="true" RowCount="4">
<SHAPEOBJECT InstId="1865560526" Lock="false" NumberingType="Table" TextWrap="TopAndBottom" ZOrder="1">
<SIZE Height="11568" HeightRelTo="Absolute" Protect="false" Width="23028" WidthRelTo="Absolute"/>
<POSITION AffectLSpacing="false" AllowOverlap="false" FlowWithText="true" HoldAnchorAndSO="false" HorzAlign="Left" HorzOffset="0" HorzRelTo="Para" TreatAsChar="false" VertAlign="Top" VertOffset="0" VertRelTo="Para"/>
<OUTSIDEMARGIN Bottom="0" Left="0" Right="0" Top="0"/>
</SHAPEOBJECT>
</TABLE>
의 TABLE태그의 PageBreak속성입니다. 또한 SHAPEOBJECT의 ZOrder속성도 편집했습니다.
POSITION태그의 TreatAsChar속성입니다.
2개의 좋아요
태그 부분이 사라져서 나와서 다시 적어봅니다.
=>
1개의 좋아요
오류 시나리오가 최신화되어서 공유 드립니다.
m_ctrlHwp->SetTextFile(varHML, _T("HWPML2X"), _T("insertfile"));
m_ctrlHwp->Run(_T("MoveSelNextChar"));
m_ctrlHwp->SetTextFile(varHML, _T("HWPML2X"), _T("insertfile"));
순서로 SetTextFile을 한 후에 입력된 부분을 다시 선택한 후에 SetTextFile을 하면, 표가 여러개 나옵니다.
단위 테스트 샘플 문서도 공유드리겠습니다.
1개의 좋아요
구글 드라이브입니다.
해당 링크는 다운로드 받은 후에, 알려주시면 권한을 닫을 예정이므로, 반드시 다운로드 완료 답장을 부탁드립니다.
1개의 좋아요
해당 샘플을 사용하는 방법입니다.
메뉴에서 "표가 있는 문서"를 열기 합니다. "문서 순회 및 표확인"을 클릭하면, 문서에 있는 표를 문서 맨 뒤에 붙여넣기 합니다.
감사합니다.
1개의 좋아요
표 하나짜리 문서를 열고 "문서 순회 및 표확인"을 클릭하면
hwpOlectrl->SetHMLData가 두 번 타서
표가 2개가 추가로 만들어집니다.
정상 동작으로 보이는데 3개 이상 만들어지나요?
1개의 좋아요
3개 이상 만들어지는 경우도 있긴 합니다. 2개가 나오는 것 자체도 문제가 있는 거 아닌가요?
제가 보기에는 그 문제를 해결하면, 3개 이상 나오는 경우도 자동으로 해결될 것 같습니다.
1개의 좋아요
참고로 3개이상 나오는 경우는 표안에 붙여넣었을 경우입니다.
1개의 좋아요
SetTextFile을 한 후에 입력된 부분을 다시 선택한 후에 SetTextFile을 하면, 표가 1개 나와야 합니다.
1개의 좋아요
SetTextFile을 한 후에 입력된 부분을 다시 선택한 후에 SetTextFile을 하면, 표가 1개 나와야 합니다.
→ SetTextFile를 2번 호출하면 표가 2번 나와야 합니다. [문서 끼워 넣기] 기능과 유사하다고 생각하시면 좋을 것 같습니다.
올려주신 코드를 보면 hwpOlectrl->SetHMLData 함수를 2번 호출하니 표가 2개가 만들어지고 있습니다. 즉, SetTextFile를 2번 호출 했기 때문에 표가 2개 만들어 지고 있습니다.
제가 이해한게 맞을까요?
1개의 좋아요
아니요.
이해가 쉽기 위해서 SetTextFile를 붙여넣기라고 표현하겠습니다.
(중요) "붙여넣기"한 후에, 붙여넣어진 표를 전체 선택합니다. 그 후에 다시 "붙여넣기"하면 표는 1개만 나옵니다.
다른 위치에 두개를 "붙여넣기"한 것이 아닙니다.
m_ctrlHwp->SetTextFile(varHML, _T(“HWPML2X”), _T(“insertfile”));
m_ctrlHwp->Run(_T(“MoveSelNextChar”));
m_ctrlHwp->SetTextFile(varHML, _T(“HWPML2X”), _T(“insertfile”));
에서 MoveSelNextChar가 있다는 점을 유념하시기 바랍니다.
해깔리시면, 한글 오피스 2022에서 확인해보신 후에 한글 오피스 2024에서 다시 해보시기 바랍니다.
1개의 좋아요
"붙여넣기"한 표를 다시 "덮어쓰기"하는 겁니다.
1개의 좋아요
SetTextFile에서 Selection을 푸는 동작이 2024에 들어갔네요 
담당 팀과 상의하여 수정하겠습니다..
그 전까지 SetTextFile을 한 번 더 하기 전에 지우는 동작을 추가 하는 건 어떨까요?
2개의 좋아요