c# 표 만들기 에러에서 토론 계속하기:
댓글 달고 나서 추가댓글/수정 하는 방법을 몰라서 ㅠㅠ… 부득이 새 글 쓰기로 하였습니다.
기본적으로 제가 사용하고는 방식은.
C#에서(visual studio 2022) 새 프로젝트 만들기 - Windows Form 앱(.NET FrameWork) C#
해서(프레임워크는 4.7.2 사용(프레임워크 버전은 상관 없는걸로 알고 있습니다.)
참조 - 참조 추가 - COM - HwpObject 1.0 Type Library 체크 해서 사용
public partial class Form1 : Form
{
public HwpObject hwp = new HwpObject(); // HwpObject hwp 선언
public Form1()
{
InitializeComponent();
init();
}
// 현재 커서 위치 정보 확인
private int[] cursorInfo(HwpObject hwp)
{
int seccnt = 0; // 총 구역
int secno = 0; // 현재 구역
int prnpageno = 0; // 쪽
int colno = 0; //단
int line = 0; //줄
int pos = 0; //칸
short over = 0; //삽입/ 겹침
string ctrlname = ""; //컨트롤 종류
hwp.KeyIndicator(out seccnt, out secno, out prnpageno, out colno, out line, out pos, out over, out ctrlname);
Debug.WriteLine("총 구역 : " + seccnt);
Debug.WriteLine("현재 구역 : " + secno);
Debug.WriteLine("쪽 : " + prnpageno);
Debug.WriteLine("단: " + colno);
Debug.WriteLine("줄: " + line);
Debug.WriteLine("칸: " + pos);
Debug.WriteLine("컨트롤 종류: " + ctrlname);
int[] cursor_info = new int[6];
cursor_info[0] = seccnt;
cursor_info[1] = secno;
cursor_info[2] = prnpageno;
cursor_info[3] = colno;
cursor_info[4] = line;
cursor_info[5] = pos;
return cursor_info; // 배열로 리런 [총구역, 현재구역, 쪽, 단, 줄, 칸, 컨트롤 종류]
}
// 한글 문서에 문장 입력
private void typing(HwpObject hwp, string sss)
{
var act = hwp.CreateAction("InsertText");
var pset = act.CreateSet();
hwp.Run("BreakPara"); //문단 나누기(Enter)
pset.SetItem("Text", sss);
act.Execute(pset);
Debug.WriteLine(cursorInfo(hwp));
}
// textBox의 텍스트를 아래한글에 입력하기
private void button1_Click(object sender, EventArgs e)
{
typing(hwp, textBox1.Text);
}
//여백
private void button2_Click(object sender, EventArgs e)
{
setMargin(hwp, 23, 23, 18, 18, 15, 15);
}
//여백 설정
private void button3_Click(object sender, EventArgs e)
{
setMargin(hwp, 23, 23, 18, 18, 15, 15);
}
private void setMargin(HwpObject hwp, float left, float right, float top, float bottom, float header, float footter)
{
hwp.HAction.GetDefault("PageSetup", hwp.HParameterSet.HSecDef.HSet);
hwp.HParameterSet.HSecDef.PageDef.LeftMargin = hwp.MiliToHwpUnit(left);
hwp.HParameterSet.HSecDef.PageDef.RightMargin = hwp.MiliToHwpUnit(right);
hwp.HParameterSet.HSecDef.PageDef.TopMargin = hwp.MiliToHwpUnit(top);
hwp.HParameterSet.HSecDef.PageDef.BottomMargin = hwp.MiliToHwpUnit(bottom);
hwp.HParameterSet.HSecDef.PageDef.HeaderLen = hwp.MiliToHwpUnit(header);
hwp.HParameterSet.HSecDef.PageDef.FooterLen = hwp.MiliToHwpUnit(footter);
hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyClass", 24);
hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyTo", 3);
hwp.HAction.Execute("PageSetup", hwp.HParameterSet.HSecDef.HSet);
}
위 코드 처럼 HwpObject 변수 hwp 를 생성해서 함수에 전달하는 형식으로 사용하고 있습니다.
버튼 눌렀을때 한글에 텍스트 입력하는 함수, 편집용지 여백 설정 함수, 커서 정보 확인 하는 함수들도 잘 작동합니다.
근데… 표 만들기가 파이썬에서는 잘 되던게… 안되네요 ㅠㅠ