한글에서 작성한 문서에 포함된 그리기 개체의 그림파일 매크로 이용한 저장방법

한글 매크로 작성중 기존 문서에 포함된 그리기로 제작된 개체를 선택하여 마우스 우클릭하면 나타나는 그림파일로 저장하는 것을 매크로로 구현하려 하였으나

매크로 작성중 마우스 우클릭 적용이 되지 않아 질의 하게되었습니다.

문서상의 그리기 개체가 많은 편이고 문서가 여러개이므로 매크로적용이 필요한데…

어떻게 작성하여야 할지 도움 부탁드립니다.

매크로 그리기개체와 더불어 글상자, 표에 대한 것도 그림파일로 저장할 수 있는지도 궁금합니다.
그림파일은 .png 또는 .jpg를 고려하고 있으며, 파일명을 지정할 수 있으면 좋겠습니다.

감사합니다.

1개의 좋아요

안녕하세요

HAction.GetDefault(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
with (HParameterSet.HShapeObjSaveAsPicture)
{
Path = “C:\Test\image.png”;
Ext = “png”;
}
HAction.Execute(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);

위 코드를 활용하셔서 그림 파일로 저장하시면 될 것 같아요

감사합니다

1개의 좋아요

function OnScriptMacro_script1()
{
HAction.GetDefault(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
with (HParameterSet.HShapeObjSaveAsPicture)
{
Path = “C:\그림저장\image.png”;
Ext = “png”;
}
HAction.Execute(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
}
로 정리하고 ASCII " " 오류도 수정하여 실행하였으나
저장되는 파일 없이 실행 반응 없습니다…??

1개의 좋아요

원하시는 개체를 선택 후
C:\그림저장\image.png 를 C:\\그림저장\\image.png로 변경해서 다시 확인 부탁드립니다.

죄송합니다. 서식이 변경되는지 몰랐네요 다시 올렸습니다.

HAction.GetDefault("ShapeObjSaveAsPicture", HParameterSet.HShapeObjSaveAsPicture.HSet);
	with (HParameterSet.HShapeObjSaveAsPicture)
	{
		Path = "C:\\Test\\image.png";
		Ext = "png";
	}
	HAction.Execute("ShapeObjSaveAsPicture", HParameterSet.HShapeObjSaveAsPicture.HSet);
1개의 좋아요

개체를 선택 후 라는게…
매크로에서 찾아가기 하여야 개체가 확인되는 것으로 알고있습니다…만…
개체선택하면 매크로 실행이 안되는것 같아요…

정리해 주신 코드로 실행하면 반응이 없습니다…
HAction.GetDefault(“Goto”, HParameterSet.HGotoE.HSet);
with (HParameterSet.HGotoE)
{
HSet.SetItem(“DialogResult”, 9);
SetSelectionIndex = 5;
}
HAction.Execute(“Goto”, HParameterSet.HGotoE.HSet);
와 같은 문서상에서 그리기 개체를 찾아야 다음 실행코드가 가능한것이 아닌지???

function OnScriptMacro_script10()
{
HAction.GetDefault(“Goto”, HParameterSet.HGotoE.HSet);
with (HParameterSet.HGotoE)
{
HSet.SetItem(“DialogResult”, 9);
SetSelectionIndex = 5;
}
HAction.Execute(“Goto”, HParameterSet.HGotoE.HSet);
HAction.GetDefault(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
with (HParameterSet.HShapeObjSaveAsPicture)
{
Path = “C:\Test\image.png”;
Ext = “png”;
}
HAction.Execute(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
}
로 코드를 변경하면 개체를 찾아가는 것까지는 이상 없으나 제시해주신 그림파일로의 저장은 실행되지 않습니다…

1개의 좋아요

안녕하세요

이동만 하면 안되고 개체를 선택해야 ShapeObjSaveAsPicture가 동작합니다.
아래 코드 참고 부탁 드립니다. 저장 그림의 경로를 적절히 변경하셔서 사용하시면 됩니다.
CtrlID는 CtrlID | 한컴디벨로퍼 를 참고하시면 됩니다.

감사합니다.

for(var Ctrl = HeadCtrl;  Ctrl != null; Ctrl = Ctrl.Next)
	{
		if( Ctrl .CtrlID == "tbl")
		{
			SelectCtrl(Ctrl.GetCtrlInstID()  , 1)
			HAction.GetDefault("ShapeObjSaveAsPicture", HParameterSet.HShapeObjSaveAsPicture.HSet);
			with (HParameterSet.HShapeObjSaveAsPicture)
			{
				Path = "C:\\Test\\image.png";
				Ext = "png";
			}
			HAction.Execute("ShapeObjSaveAsPicture", HParameterSet.HShapeObjSaveAsPicture.HSet);
		}
	}

제가 자바스크립트에 대한 이해도가 떨어져서 그런지…

function OnScriptMacro_script1()
{
for(var Ctrl = HeadCtrl; Ctrl != null; Ctrl = Ctrl.Next)
{
if( Ctrl .CtrlID == “gso”)
{
SelectCtrl(Ctrl.GetCtrlInstID() , 1)
HAction.GetDefault(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
with (HParameterSet.HShapeObjSaveAsPicture)
{
Path = “D:\HWPimage\image\image.png”;
Ext = “png”;
}
HAction.Execute(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
}
}
}

로 바꾸어 실행해보았습니다.

저장된 파일이 보이질 않습니다…

제가 자바스크립트에 대한 이해도가 떨어져서 그런지…

function OnScriptMacro_script1()
{
for(var Ctrl = HeadCtrl; Ctrl != null; Ctrl = Ctrl.Next)
{
if( Ctrl .CtrlID == “gso”)
{
SelectCtrl(Ctrl.GetCtrlInstID() , 1)
HAction.GetDefault(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
with (HParameterSet.HShapeObjSaveAsPicture)
{
Path = “D:\HWPimage\image\image.png”;
Ext = “png”;
}
HAction.Execute(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
}
}
}

로 바꾸어 실행해보았습니다.

저장된 파일이 보이질 않습니다…
제시해 주신
Path = “C:\Test\image.png”;에서는 오류가 발생하여
수정하였습니다.

그리고, 댓글에 파일 업로드가 되지 않는군요… 샘플 파일을 어떻게 첨부해야 할까요?


위 그림에서 빨간색 동그라미로 샘플 파일 올릴 수 있습니다. hwpx파일 첨부해주세요
그리고 D:\HWPimage\image 경로는 존재하지요?

제 PC에서는 아래처럼 말씀하신 코드에서 이미지 경로만 변경해서 확인했는데 정상 동작합니다 ㅠㅠ

for(var Ctrl = HeadCtrl; Ctrl != null; Ctrl = Ctrl.Next)
{
if( Ctrl .CtrlID == "gso")
{
SelectCtrl(Ctrl.GetCtrlInstID() , 1)
HAction.GetDefault("ShapeObjSaveAsPicture", HParameterSet.HShapeObjSaveAsPicture.HSet);
with (HParameterSet.HShapeObjSaveAsPicture)
{
Path = "C:\\Test\\image.png";
Ext = "png";
}
HAction.Execute("ShapeObjSaveAsPicture", HParameterSet.HShapeObjSaveAsPicture.HSet);
}
}

네 존재하는 폴더이구요…
파일 업로드가… 된건지…??

신규사용자는 첨부파일 업로드가 안된다고… 나오는데…ㅠㅠ

다시 첨부해 주실 수 있을까요?
만약 안되면 로그아웃하시고 다시 로그인해서 다시 첨부되는지 확인 부탁드려요

이미지test.hwpx (75.4 KB)

네…

업로드 되었습니다…

작업파일이 큰 관계로 일부만 새로 만들기 하였습니다…
역시 저장에 문제있슴은 확인하였습니다…

번거롭겠지만 검토 부탁드리겠습니다…

도움 주신 덕분에 해결되었습니다…

저장할 그림 파일이 여러개인데 그 부분을 고려하지 않아 문제가 발생하였고, 경로표시에서 실수가 있었습니다…

function OnScriptMacro_script1()
{
var count = 0;
for(var Ctrl = HeadCtrl; Ctrl != null; Ctrl = Ctrl.Next)
{
if( Ctrl .CtrlID == “gso”)
{
SelectCtrl(Ctrl.GetCtrlInstID() , 1)
HAction.GetDefault(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
with (HParameterSet.HShapeObjSaveAsPicture)
{
count = count + 1;
Path = “D:\HWPimage\image\image”+ count +“.png”;
Ext = “png”;
}
HAction.Execute(“ShapeObjSaveAsPicture”, HParameterSet.HShapeObjSaveAsPicture.HSet);
}
}
}
로 정리하여 해결하였습니다.

**** 추가 질문이 있습니다. ****

그림으로 저장할 때, 해상도를 조정하는 방법이 있는지…?? 작은 글씨는 일부 깨지는 현상이 보여 질문드립니다.

**** 추가 질문이 있습니다. ****
마지막 부분에 쓴 내용이라 확인 못하신듯…

그림으로 저장할 때, 해상도를 조정하는 방법이 궁금합니다.
작은 글씨는 일부 깨지는 현상이 보여 질문드립니다.

안녕하세요

답변이 늦어서 죄송합니다.ㅠㅠ

현재 그림의 해상도를 조정하는 방법은 따로 없으나 추후 지원할 예정입니다.

감사합니다.