Type Here to Get Search Results !

11 Go언어:HWP자동화: 편집 용지 설정

여기서는 Go언어와 gohwp를 이용하여 한글 HWP 편집 용지 설정을 변경하는 것을 보이겠습니다. 

편집 용지 설정은 한글 HWP에서 "F7"을 눌렀을 때 나타나는 설정으로, 아래 그림과 같습니다.

업무 자동화에 편집 용지 설정을 건드릴 일이 있을까 싶지만, 간단한 보고 문서, 기관 간행물 등 각종 문서들을 살펴보면 용지 여백이 다른 경우가 있습니다. 제 경우에는 보고서, 간행물 등 몇 가지 서식을 참조하여 용지 여백 설정을 메서드로 만들어 놓고 사용합니다.

편집 용지 설정 예시 코드는 아래와 같습니다.

package main

import (
    "github.com/b612nightsky/gohwp"
)

func main() {
    hwp := gohwp.Initialize()
    defer hwp.UnInitialize()
    hwp.ShowWindow(true)
    hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModuleExample")

    act := hwp.HAction()
    set := hwp.HParameterSet().HSecDef()
    act.GetDefault("PageSetup", set.HSet())
    pagedef := set.PageDef()
    pagedef.LeftMargin(hwp.MiliToHwpUnit(20.))
    pagedef.RightMargin(hwp.MiliToHwpUnit(20.))
    pagedef.TopMargin(hwp.MiliToHwpUnit(15.))
    pagedef.BottomMargin(hwp.MiliToHwpUnit(15.))
    pagedef.HeaderLen(hwp.MiliToHwpUnit(15.))
    pagedef.FooterLen(hwp.MiliToHwpUnit(15.))
    set.HSet().SetItem("ApplyClass", 24)
    set.HSet().SetItem("ApplyTo", 3)
    act.Execute("PageSetup", set.HSet())
} 

  • 액션은 "PageSetup"이며, 파라미터 세트는 "HSecDef" (구역) 입니다.
  • 편집 용지 설정은 HSecDef 파라미터 세트에서 바로 수정하는 것이 아니라 "PageDef"라는 서브 파라미터 세트를 가지고 있어, PageDef를 설정합니다.
  • LeftMargin, RightMargin, TopMargin, BottomMargin 은 좌우상하 여백입니다.
  • HeaderLen, FooterLen은 머리말, 꼬리말입니다.

  • 위의 예제에는 없지만  "pagedef.Landscape(1)"을 넣게 되면 용지 방향이 "가로"가 됩니다.
  • ApplyTo의 경우, 3 : "문서 전체", 4 : "새 구역으로", 2: "현재 영역" 입니다. 다른 값은 모르겠습니다.

하단에 ApplyClass와 ApplyTo는 한글 오토메이션 매뉴얼에는 설명이 없습니다. 스크립트 생성을 해보고 나서야 존재를 알게 되었고, 이를 넣지 않으면 작동을 하지 않습니다.
ApplyClass는 솔직히 모르겠습니다. 어디에서도 설명을 찾아볼 수 없고 안 넣으면 작동을 하지 않으니 일단은 넣어놨습니다.
ApplyClass 등의 의미를 알게 된다면 업데이트하겠습니다.

댓글 쓰기

0 댓글
* Please Don't Spam Here. All the Comments are Reviewed by Admin.