[WinForms] 인쇄하기 > 온라인 스터디

본문 바로가기

Spread.NET

온라인 스터디

10. 인쇄 [WinForms] 인쇄하기

페이지 정보

작성자 GrapeCity 작성일 21-11-05 16:25 조회 197회 댓글 0건

본문

Spread.NET에서 사용자는 스프레드시트 전체 또는 일부를 인쇄할 수 있고, 다양한 인쇄 옵션 설정을 통해 원하는 인쇄 기능을 사용할 수 있습니다. Spread.NET에서 제공하는 인쇄 옵션으로는 다음의 항목들이 포함됩니다.

  • 인쇄 미리보기

  • 인쇄 영역 선택

  • 프린트 설정

  • 양면 인쇄 설정

  • 다중 페이지 인쇄 설정


대다수의 인쇄 옵션 설정은 PrintInfo 클래스와 관련이 있습니다. PrintInfo 객체는 스프레드의 각 시트 별로 할당되므로, 시트마다 각기 다른 인쇄 옵션을 설정할 수 있습니다.

// 인쇄 설정을 위해 PrintInfo 객체를 생성합니다.
PrintInfo printInfo = new PrintInfo();
​
// 다양한 인쇄 옵션 설정
{
...
}
​
// 인쇄 설정을 활성화된 시트에 적용합니다.
fpSpread1.ActiveSheet.PrintInfo = printInfo;


대부분의 인쇄 작업은 FpSpread 클래스의 PrintSheet 메소드를 사용합니다. 매개변수로 인쇄하려는 시트의 인덱스가 사용됩니다.


별도로 설정하지 않는 한, 시트는 Windows 환경의 현재 기본 프린터에서 인쇄됩니다.

예제를 통해 인쇄 미리보기 기능인쇄 영역을 설정하는 방법을 살펴보겠습니다. 예제에서는 '출력' 버튼을 클릭하면 인쇄 미리보기 창이 나타나고, 미리보기 창을 통해 인쇄를 시작할 수 있습니다.


인쇄 미리보기

  1. 도구상자에서 FpSpread 컨트롤과 Button 컨트롤을 찾아 Form으로 드래그 앤 드롭합니다. 두 컨트롤의 위치와 크기를 적절히 조절합니다.

    01_AddButton

    02_AddSpread

  2. 버튼에 표시되는 텍스트를 변경하고, 두 컨트롤의 도킹 스타일을 설정합니다.

    // 버튼에 표시되는 텍스트를 '출력'으로 설정합니다.
    button1.Text = "출력";
    ​
    // 버튼과 스프레드의 가장자리가 Form의 가장자리에 도킹되도록 설정합니다.
    button1.Dock = DockStyle.Top;
    fpSpread1.Dock = DockStyle.Fill;

  3. 활성화된 시트에 샘플 데이터를 입력합니다. 샘플 데이터에 원하시는 데이터를 입력하셔도 됩니다.

    // 샘플 데이터를 입력합니다.
    fpSpread1.ActiveSheet.Cells[0, 0].Value = "회원번호";
    fpSpread1.ActiveSheet.Cells[0, 1].Value = "수강일수";
    for (int row = 1; row < 50; row++)
    {
      fpSpread1.ActiveSheet.Cells[row, 0].Value = row;
      fpSpread1.ActiveSheet.Cells[row, 1].Value = row / 2;
    }

  4. 버튼을 클릭했을 때 인쇄 관련 이벤트가 발생하도록 하기 위해, 버튼 클릭 이벤트를 생성 및 정의합니다. 디자인 보기 화면에서 버튼 컨트롤을 더블 클릭하면 .cs 파일에 버튼 클릭 이벤트가 생성됩니다. 해당 이벤트 내부에 이어지는 내용을 추가합니다.

    private void button1_Click(object sender, EventArgs e)
    {
    // 버튼 클릭 이벤트를 정의합니다.
    }

  5. 인쇄 옵션 설정을 위해 PrintInfo 객체를 생성합니다.

    PrintInfo printInfo = new PrintInfo();

  6. 인쇄 시 미리보기 창을 띄우기 위해, PrintInfo 객체의 Preview 속성을 true로 설정합니다.

    printInfo.Preview = true;

  7. 인쇄 설정을 원하는 시트에 적용합니다. 예제에서는 활성화 되어있는 시트에 적용하였습니다.

    fpSpread1.ActiveSheet.PrintInfo = printInfo;

  8. 인쇄 설정을 적용한 시트를 출력합니다.

    fpSpread1.PrintSheet(fpSpread1.ActiveSheetIndex);

  9. 코드를 실행한 후, 버튼을 클릭하면 아래 이미지와 같이 인쇄 미리보기 창이 나타납니다.

    03_Preview

  10. 미리보기 창 좌측 상단의 프린터 모양 아이콘을 클릭하면, 미리보기에서 확인한 내용이 인쇄됩니다.


샘플을 다운로드하여 전체 코드를 확인해 보실 수 있습니다.

인쇄 미리보기 - 샘플 다운로드




인쇄 영역 설정


인쇄 범위에 대한 설정 없이 PrintSheet 메소드를 호출하면 데이터 입력된 시트 전체가 출력됩니다. 만약 시트 내 일부만 인쇄하고 싶다면 PrintInfo 클래스의 PrintType 속성을 사용하여 인쇄 영역을 설정할 수 있습니다. PrintType 속성값으로는 다음의 항목들이 입력될 수 있습니다.

  • All: 시트 전체를 인쇄합니다. (기본 설정)

  • CellRange: 특정 셀 범위를 인쇄합니다.

  • CurrentPage: 현재 페이지를 인쇄합니다.

  • PageRange: 특정 범위의 페이지들을 인쇄합니다.


특정 셀 범위 인쇄하기

PrintType을 CellRange로 설정하여 특정 셀 범위를인쇄할 수 있습니다. 이때, 다음의 속성 값을 사용하여 인쇄하려는 셀 범위를 지정합니다.

  • ColStart: 인쇄 영역 시작 열 인덱스

  • ColEnd: 인쇄 영역 끝 열 인덱스

  • RowStart: 인쇄 영역 시작 행 인덱스

  • RowEnd: 인쇄 영역 끝 행 인덱스

앞서 살펴본 인쇄 미리보기 예제의 버튼 클릭 이벤트 안에 아래 코드를 추가해보겠습니다.

// 인쇄 타입을 셀 범위 인쇄로 설정합니다.
printInfo.PrintType = PrintType.CellRange;
​
// 인쇄할 셀 범위를 설정합니다. 셀 범위 [A1:B2]
printInfo.ColStart = 0;
printInfo.ColEnd = 1;
printInfo.RowStart = 0;
printInfo.RowEnd = 1;

출력 버튼을 클릭하면, 미리보기 화면에서 다음과 같이 셀 범위 [A1:B2]가 보여지는 것을 확인할 수 있습니다.

04_CellRange


샘플을 다운로드하여 전체 코드를 확인해 보실 수 있습니다.

특정 셀 범위 인쇄하기 - 샘플 다운로드


현재 페이지 인쇄하기

PrintType을 CurrentPage로 설정하여 현재 페이지만 인쇄할 수 있습니다.

// 인쇄 설정을 위해 PrintInfo 객체를 생성합니다.
PrintInfo printInfo = new PrintInfo();
​
// 인쇄 타입을 셀 영역 인쇄로 설정합니다.
printInfo.PrintType = PrintType.CurrentPage;
​
// 인쇄 설정을 활성화된 시트에 적용합니다.
fpSpread1.ActiveSheet.PrintInfo = printInfo;
​
// 활성화 되어있는 시트를 출력합니다.
fpSpread1.PrintSheet(fpSpread1.ActiveSheetIndex);

샘플을 다운로드하여 전체 코드를 확인해 보실 수 있습니다.

현재 페이지 인쇄하기 - 샘플 다운로드


특정 페이지 범위 인쇄하기

PrintType을 PageRange로 설정하여 특정 셀 범위를 인쇄할 수 있습니다. 이때, 다음의 속성 값을 사용하여 인쇄하려는 페이지 범위를 지정합니다.

  • PageStart: 인쇄 시작 페이지 번호 (첫번째 페이지 번호는 1입니다.)

  • PageEnd: 인쇄 끝 페이지 번호

다음 코드를 사용하여 페이지 1부터 페이지 3까지 총 세 페이지를 인쇄합니다. 만약 페이지 3에 데이터가 없다면, 해당 페이지는 출력되지 않습니다.

// 인쇄 설정을 위해 PrintInfo 객체를 생성합니다.
PrintInfo printInfo = new PrintInfo();
​
// 인쇄 타입을 페이지 영역 인쇄로 설정합니다.
printInfo.PrintType = PrintType.PageRange;
​
// 인쇄할 페이지 범위를 설정합니다.
printInfo.PageStart = 1;
printInfo.PageEnd = 3;
​
// 인쇄 설정을 활성화된 시트에 적용합니다.
fpSpread1.ActiveSheet.PrintInfo = printInfo;
​
// 활성화 되어있는 시트를 출력합니다.
fpSpread1.PrintSheet(fpSpread1.ActiveSheetIndex);

샘플을 다운로드하여 전체 코드를 확인해 보실 수 있습니다.

특정 페이지 범위 인쇄하기 - 샘플 다운로드




지금 바로 Spread.NET을 다운로드하여 직접 테스트해보세요!

spnet.png


  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

인기글

더보기
  • 인기 게시물이 없습니다.
그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@grapecity.com | 전화 : 1670-0583 | 경기도 안양시 동안구 시민대로 230, B-703(관양동, 아크로타워) 그레이프시티(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 Copyright ⓒ 2022 GrapeCity inc.