문서내 표를 이미지 파일로 저장하기

아래 코드를 사용하여 문서에서 표를 찾아 이미지 파일로 저장하고 있습니다.
대부분 잘 동작은 하는데…
표 안에 그림이 들어가 있는 경우 그림이 누락된 상태로 이미지 파일로 저장됩니다.
방법이 있을까요 ?

////////////////////////////////////////////////////////////////////////////////////////////////
HWPCONTROLLib.HwpParameterSet paraSet;

HwpCtrlCode code = (HwpCtrlCode)axHwpCtrl.HeadCtrl;

while( code != null && code != (HwpCtrlCode)axHwpCtrl.LastCtrl )
{
String id = code.ctrlid;

if( id == "tbl" )
{
	paraSet		= (HwpParameterSet)code.GetAnchorPos( 0 );
	int list	= (int)(uint)paraSet.Item( "List" );
	int para	= (int)(uint)paraSet.Item( "Para" );
	int pos		= (int)(uint)paraSet.Item( "Pos" );

	axHwpCtrl.SetPos( list, para, pos );
	axHwpCtrl.Run( "SelectCtrlReverse" );

	HwpAction vAction		= (HwpAction)axHwpCtrl.CreateAction( "SaveBlockAction" ); 
	HwpParameterSet vSet	= (HwpParameterSet)vAction.CreateSet(); 
	vAction.GetDefault( vSet ); 

	vSet.SetItem( "FileName", "저장할파일경로..." ); 
	vSet.SetItem( "Format",   "PNG" );
	vSet.SetItem( "Argument", "saveblock" );
	int ret			= vAction.Execute( vSet );
}

code		= (HwpCtrlCode)code.Next;

}

1개의 좋아요

안녕하세요!

PrintToImage를 사용하시면 될 것 같습니다.

HwpAction vAction = (HwpAction)axHwpCtrl1.CreateAction(“PrintToImage”);
HwpParameterSet vSet = (HwpParameterSet)vAction.CreateSet();
vAction.GetDefault(vSet);

vSet.SetItem(“FileName”, “저장할파일경로…”);
vSet.SetItem(“Format”, 3); //png
vSet.SetItem(“ColorDepth”, 24);
vSet.SetItem(“Resolution”, 300);
int ret = vAction.Execute(vSet);

위 코드로 한번 해보시고 안되면 다시 문의 주세요

2개의 좋아요

(실수로 댓글을 지웠다 다시씁니다.)

댓글 감사드립니다.

동작은 하는데…
제가 원했던 것은 해당 표만 이미지로 저장하는 것인데
PrintToImage 를 사용하니깐 페이지 전체 내용이 다 이미지로 저장되네요 ㅠㅠ

1개의 좋아요

안녕하세요.

잘못안내를 드렸네요 죄송합니다. ㅠ

ShapeObjSaveAsPicture를 사용하시면 됩니다.

HwpAction vAction = (HwpAction)axHwpCtrl1.CreateAction(“ShapeObjSaveAsPicture”);
HwpParameterSet vSet = (HwpParameterSet)vAction.CreateSet();
vAction.GetDefault(vSet);

vSet.SetItem(“Path”, “저장할파일경로…”);
vSet.SetItem(“Ext”, “png”);
int ret = vAction.Execute(vSet);

이걸로 한번 해보세요

2개의 좋아요

말씀대로 해봤는데 아래 Execute() 함수에서 0을 반환하고 실패하네요
이유 무엇일까요~?

int ret = vAction.Execute(vSet); // 0 반환

감사합니다.

1개의 좋아요

질문하신 코드로 정상동작 확인하고 첨부해드린건데… 저랑 다른 부분은 Path로 경로 지정하는 부분 정도?

다른이유가 있을 듯 한데…

  1. 혹시 사용하시는 한/글 버전 확인과

  2. 저장하려는 표를 선택하고
    axHwpCtrl.Run(“ShapeObjSaveAsPicture”);
    로 저장 대화상자 팝업되며 저장 되는지 확인 부탁드립니다.

2개의 좋아요

버전하고, 동작확인했습니다.

  1. 버전
    한컴 오피스 2022
    AxInterop.HWPCONTROLLib ( 1.2.0.0 )
    입니다.

  2. 표를 선택하고 axHwpCtrl.Run(“ShapeObjSaveAsPicture”); 를 호출해도
    대화창이 나오지는 않고 그냥 지나갑니다.

감사합니다.

1개의 좋아요