다단설정되어 있을때 현재 단의 가로 크기 확인 방법?

안녕하세요 페이지의 크기 및 여백은 확인하는 방법은 알겠는데 다단이 설정되어 있을때
단의 크기는 어떻게 알 수 있을까요?

  • c# 사용하고 있습니다.

현재 페이지 크기는 아래 처럼 해서 확인하고 있습니다.

  var act = hwp.CreateAction("PageSetup");
  var set = act.CreateSet();
  act.GetDefault(set);
  double paper_width = set.Item("PageDef").Item("PaperWidth");        // 용지 가로 크기
  double paper_height = set.Item("PageDef").Item("PaperHeight");       // 용지 세로 크기
  byte landscape = set.Item("PageDef").Item("Landscape");               //  용지 방향 (0 : 좁게, 1 : 넓게)
  double top_margin = set.Item("PageDef").Item("TopMargin");          // 위 마진
  double bottom_margin = set.Item("PageDef").Item("BottomMargin");    // 아래 마진
  double left_margin = set.Item("PageDef").Item("LeftMargin");                // 왼쪽 마진
  double right_margin = set.Item("PageDef").Item("RightMargin");           // 오른족 마진
  double header_len = set.Item("PageDef").Item("HeaderLen");               // 머리말 길이
  double footer_len = set.Item("PageDef").Item("FooterLen");                  // 꼬리말 길이
  double gutter_len = set.Item("PageDef").Item("GutterLen");                  // 제본 여백
  byte gutter_type = set.Item("PageDef").Item("GutterType");                  // 편집 방법(0:한쪽 편집, 1: 맞쪽 편집, 2: 위로 넘기기)

혹시 제가 위에 적은 페이지 크기 구하는 방법처럼 단의 갯수, 단의 여백, 단의 크기 등을 구하는 방법을 알 수 있을까요?

안녕하세요.

단 설정 액션을 통해 단 크기를 가져올 수 있을 것 같습니다.

CDHwpAction act = m_app.CreateAction(_T("MultiColumn"));
CDHwpParameterSet set = act.CreateSet();

// 현재 위치의 단 설정 구하기
act.GetDefault(set);

// 단 종류
int type = set.Item(_T("Type")).intVal;
// 단 개수
int count = set.Item(_T("Count")).intVal;
// 단 너비 지정
int sameSize = set.Item(_T("SameSize")).intVal;

if (sameSize == 1) {
   int sameGap = set.Item(_T("SameGap")).intVal;
   // TODO : 단 너비 = 페이지 너비 - (sameSize * (count - 1));
} else {
   // WidthGap Array을 통해 각 단의 너비를 구함
}
...

감사합니다.

1개의 좋아요

감사합니다. 2단 구성인데 단 폭의 크기는 같은 상태라서 간단하게 정리해서 했습니다 ^^

var act = hwp.CreateAction("MultiColumn");
var set = act.CreateSet();
act.GetDefault(set);        // set 변수에 아이템 값 가져오기
int type = set.Item("Type");        // 단 종류
int count = set.Item("Count");      // 단 개수
int Samesize = set.Item("SameSize");        // 단 너비 0: 단 너비 각자 지정, 1: 단 너비 동일
double sameGap = set.Item("SameGap");        // 단 간격

Debug.WriteLine($"단 종류 : {type}");
Debug.WriteLine($"단 개수 : {count}");
Debug.WriteLine($"동일사이즈(0각자, 1동일 :{Samesize} ");
Debug.WriteLine($"단 간격:{sameGap}");

double width = (page_Width - left_margin - right_margin - sameGap) / 2;
1개의 좋아요