셀배경 그라데이션 동작이 되지 않습니다.

혹시 파이썬 샘플코드가 따로 있을까요?

def 표배경그라데이션(self):
    총 = self.대상.CreateAction("CellBorderFill")
    총알 = 총.CreateSet()
    총.GetDefault(총알)
    서브총알=총알.CreateItemSet("FillAttr","DrawFillAttr")
    서브총알.SetItem("Type", 3)
    서브총알.SetItem("GradationCenterX", 0)
    서브총알.SetItem("GradationCenterY", 0)
    서브총알.SetItem("GradationAngle", 90)
    서브총알.SetItem("GradationStep", 255)
    서브위치배열=서브총알.CreateItemArray("GradationIndexPos",10)
    서브위치배열.SetItem(0, 0)
    서브위치배열.SetItem(1, 255)
    서브위치배열.SetItem(2, 0)
    서브위치배열.SetItem(3, 0)
    서브위치배열.SetItem(4, 0)
    서브위치배열.SetItem(5, 0)
    서브위치배열.SetItem(6, 0)
    서브위치배열.SetItem(7, 0)
    서브위치배열.SetItem(8, 0)
    서브위치배열.SetItem(9, 0)
    서브총알.SetItem("GradationStepCenter", 80)
    서브총알.SetItem("GradationColorNum", 2)
    서브색배열=서브총알.CreateItemArray("GradationColor",10)
    서브색배열.SetItem(0, self.대상.RGBColor(102,102,102))
    서브색배열.SetItem(1, self.대상.RGBColor(255,255,255))
    서브색배열.SetItem(2, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(3, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(4, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(5, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(6, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(7, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(8, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(9, self.대상.RGBColor(0,0,0))
    서브총알.SetItem("GradationBrush", 1)
    총.Execute(총알)
1개의 좋아요

안녕하세요 ^^
제가 지금 파이썬 테스트가 불가능해 소스만 보고 좀 가이드 드리겠습니다.

CreateSet 및 GetDefault를 했기때문에 서브 Set은 이미 생성 되어있을것 같습니다.

서브총알=총알.Item(“FillAttr”);
생성할필요 없이 바로 Set을 가져와서 사용하면 될것으로 보입니다.

감사합니다 :slight_smile:

저도 테스트를 한번 해보고 또 댓글남겨드리겠습니다 !

1개의 좋아요

아 그리고 Cell 채우기 속성으로 사용되어지는 Set은 DrawFillAttr Set이 아닌 그냥 FillAttr set입니다.!!

이부분에서도 문제가 생길수있을것 같습니다!

1개의 좋아요
    총 = self.대상.CreateAction("CellFill")
    총알 = 총.CreateSet()
    총.GetDefault(총알)
    서브총알=총알.Item("FillAttr")
    서브총알.SetItem("Type", 3)
    서브총알.SetItem("GradationType", 1)
    서브총알.SetItem("GradationCenterX", 0)
    서브총알.SetItem("GradationCenterY", 0)
    서브총알.SetItem("GradationAngle", 90)
    서브총알.SetItem("GradationStep", 255)
    서브위치배열=서브총알.CreateItemArray("GradationIndexPos",10)
    서브위치배열.SetItem(0, 0)
    서브위치배열.SetItem(1, 255)
    서브위치배열.SetItem(2, 0)
    서브위치배열.SetItem(3, 0)
    서브위치배열.SetItem(4, 0)
    서브위치배열.SetItem(5, 0)
    서브위치배열.SetItem(6, 0)
    서브위치배열.SetItem(7, 0)
    서브위치배열.SetItem(8, 0)
    서브위치배열.SetItem(9, 0)
    서브총알.SetItem("GradationStepCenter", 80)
    서브총알.SetItem("GradationColorNum", 2)
    서브색배열=서브총알.CreateItemArray("GradationColor",10)
    서브색배열.SetItem(0, self.대상.RGBColor(102,102,102))
    서브색배열.SetItem(1, self.대상.RGBColor(255,255,255))
    서브색배열.SetItem(2, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(3, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(4, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(5, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(6, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(7, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(8, self.대상.RGBColor(0,0,0))
    서브색배열.SetItem(9, self.대상.RGBColor(0,0,0))
    서브총알.SetItem("GradationBrush", 1)
    총.Execute(총알)

FillAttr로 변경하였지만 여전히 동작하지 않습니다 ㅠㅠ

1개의 좋아요

안녕하세요 ^^
자바스크립트로 그라데이션 적용하는 코드 공유드려요 참고하시면 좋을것 같습니다.
작동 테스트 완료했습니다~!

function OnCellGradation()
{
	var act = myHwpObj.CreateAction("CellFill");
	var set = myHwpObj.CreateSet("CellBorderFill");
	act.GetDefault(set);
	
	var fillattr = set.CreateItemSet("FillAttr", "DrawFillAttr");
				
	fillattr.SetItem("Type", myHwpObj.BrushType("NullBrush|GradBrush"));
	fillattr.SetItem("GradationType", myHwpObj.Gradation("Linear"));
	
	fillattr.SetItem("GradationCenterX",0);
	fillattr.SetItem("GradationCenterY",0);
	fillattr.SetItem("GradationAngle",90);
	fillattr.SetItem("GradationStep",255);
				
	
	var GradationIndexPos = fillattr.CreateItemArray("GradationIndexPos", 10);
	GradationIndexPos.SetItem(0, 0);
	GradationIndexPos.SetItem(1, 255);
	GradationIndexPos.SetItem(2, 0);
	GradationIndexPos.SetItem(3, 0);
	GradationIndexPos.SetItem(4, 0);
	GradationIndexPos.SetItem(5, 0);
	GradationIndexPos.SetItem(6, 0);
	GradationIndexPos.SetItem(7, 0);
	GradationIndexPos.SetItem(8, 0);
	GradationIndexPos.SetItem(9, 0);
	
	
	fillattr.SetItem("GradationStepCenter",50);
	fillattr.SetItem("GradationColorNum",2);
	
	var GradationColor = fillattr.CreateItemArray("GradationColor", 10);
	GradationColor.SetItem(0, myHwpObj.RGBColor(255, 255, 255));
	GradationColor.SetItem(1, myHwpObj.RGBColor(0, 0, 0));
	GradationColor.SetItem(2, myHwpObj.RGBColor(0, 0, 0));
	GradationColor.SetItem(3, myHwpObj.RGBColor(0, 0, 0));
	GradationColor.SetItem(4, myHwpObj.RGBColor(0, 0, 0));
	GradationColor.SetItem(5, myHwpObj.RGBColor(0, 0, 0));
	GradationColor.SetItem(6, myHwpObj.RGBColor(0, 0, 0));
	GradationColor.SetItem(7, myHwpObj.RGBColor(0, 0, 0));
	GradationColor.SetItem(8, myHwpObj.RGBColor(0, 0, 0));
	GradationColor.SetItem(9, myHwpObj.RGBColor(0, 0, 0));
	
	fillattr.SetItem("GradationBrush",1);
	
	act.Execute(set);
}
1개의 좋아요