네, 감사합니다. 일단 보안창 안나오는거는 잘 됩니다.
그런데, 갑자기 표의 사이즈가 잘 되던게, 원래 정의한 폭의 길이가 우측쪽으로 페이지를 벗어나 늘어나 있네요.
잘 되던 이전 소스 복원에서 해도 마찬가지네요. 이유를 모르겠습니다. 폭의 수치를 아무리 줄여도 마찬가지네요.
CDHwpAction actPage = m_app.CreateAction(_T(“PageSetup”));
CDHwpParameterSet pageCreationSet = actPage.CreateSet();
CDHwpParameterSet pageSet = pageCreationSet.CreateItemSet(_T(“PageDef”), _T(“PageDef”));
//actPage.GetDefault(pageCreationSet);
pageSet.SetItem(_T(“ApplyTo”), CComVariant(3));
pageSet.SetItem(_T(“TopMargin”), CComVariant(150));
pageSet.SetItem(_T(“LeftMargin”), CComVariant(150));
pageSet.SetItem(_T(“RightMargin”), CComVariant(150));
pageSet.SetItem(_T(“BottomMargin”), CComVariant(150));
actPage.Execute(pageCreationSet);
//return;
/////////////////////////////////////////////////////////////////////////////////////
const int rowsCnt = 2;
const int colsCnt = 1;
long row_i = 0;
int col_i = 0;
CDHwpAction act = m_app.CreateAction(_T(“TableCreate”));
CDHwpParameterSet TableCreationSet = act.CreateSet();
act.GetDefault(TableCreationSet);
// TableCreation ParameterSet
TableCreationSet.SetItem(_T(“Rows”), CComVariant(rowsCnt));
TableCreationSet.SetItem(_T(“Cols”), CComVariant(colsCnt));
CDHwpParameterArray rowsHeight = TableCreationSet.CreateItemArray(_T(“RowHeight”), rowsCnt);
CDHwpParameterArray colsWidth = TableCreationSet.CreateItemArray(_T(“ColWidth”), rowsCnt);
for (row_i = 0; row_i < rowsCnt; ++row_i)
rowsHeight.SetItem(row_i, CComVariant((long)(20000)));
for (col_i = 0; col_i < colsCnt; ++col_i)
colsWidth.SetItem(col_i, CComVariant((long)(10 * 283.465)));
// Table ParameterSet (TableSet의 상위 계승자인 ShapeObject ParameterSet)
CDHwpParameterSet TableSet = TableCreationSet.CreateItemSet(_T(“TableProperties”), _T(“Table”));
TableSet.SetItem(_T(“TreatAsChar”), CComVariant(0)); // off
TableSet.SetItem(_T(“VertRelTo”), CComVariant(0)); // 종이 영역
TableSet.SetItem(_T(“VertAlign”), CComVariant(0)); // 위(Top)
TableSet.SetItem(_T(“VertOffset”), CComVariant((long)(1 * 283.465))); // 1mm = 283.465 HWPUNITs
TableSet.SetItem(_T(“HorzRelTo”), CComVariant(0)); // 종이 영역
TableSet.SetItem(_T(“HorzAlign”), CComVariant(0)); // 왼쪽(Left)
TableSet.SetItem(_T(“HorzOffset”), CComVariant((long)(10 * 283.465))); // 1mm = 283.465 HWPUNITs
act.Execute(TableCreationSet);
//return;
///////////////////////////////////////////////////////////////////////////////////////////////
VARIANT type, faceColor, facestyle, hatchcolor;
type.vt = VT_UI1;
facestyle.vt = VT_UI1;
hatchcolor.vt = VT_UI1;
faceColor.vt = VT_UI1;
type.intVal = 1; // 배경 유형
facestyle.lVal = 0xffffffff; //무늬 스타일(무늬없음)
hatchcolor.lVal = 0x00000000; // 무늬 색
faceColor.lVal = 0x0000ffff; // 배경 색
CDHwpAction actCellFill = m_app.CreateAction(_T(“CellFill”));
CDHwpParameterSet CellFillSet = actCellFill.CreateSet();
CDHwpParameterSet FillItem = CellFillSet.CreateItemSet(_T(“FillAttr”), _T(“DrawFillAttr”));
actCellFill.GetDefault(CellFillSet);
FillItem.SetItem(_T(“Type”), type);
FillItem.SetItem(_T(“WinBrushFaceStyle”), facestyle);
FillItem.SetItem(_T(“WinBrushHatchColor”), hatchcolor);
FillItem.SetItem(_T(“WinBrushFaceColor”), CComVariant(m_app.RGBColor(211, 211, 211)));// faceColor);
actCellFill.Execute(CellFillSet);
코딩 순서에 문제가 있는지, 확인해주시면 감사하겠습니다.
페이지 셋업은 위아래좌우를 약 1센티씩 정도만 하려고 합니다.
표의 사이즈는 상하여백 약 2센티 정도, 좌우는 1센티씩 정도로 하려고 합니다.