[Winforms] 인쇄 페이지에 워터마크 추가하기 > 온라인 스터디

본문 바로가기

Spread.NET

온라인 스터디

10. 인쇄 [Winforms] 인쇄 페이지에 워터마크 추가하기

페이지 정보

작성자 GrapeCity 작성일 21-11-09 11:07 조회 129회 댓글 0건

본문

인쇄물의 무단 배포를 방지하기 위해, 출력물에 워터마크를 삽입하는 경우가 있습니다.

Spread.NET에서도 스프레드시트를 인쇄할 때 배경이미지 또는 워터마크를 추가할 수 있습니다. 이를 위해서 PrintBackground 이벤트PrintInfo.Opacity 속성이 사용됩니다.

'출력' 버튼 클릭 시, 시트 중앙에 Spread.NET 로고가 워터마크로 삽입되며 시트 전체가 출력되는 예제를 살펴보겠습니다.


  1. 도구 상자에서 fpSpread 컨트롤과 Button 컨트롤을 찾아 form으로 드래그 앤 드롭합니다.

    01_AddButton

    02_AddSpread  

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

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

  3. 시트에 샘플 데이터를 입력합니다. 예제에서는 셀 범위 [A1:D10]에 'Spread'라는 텍스트가 입력됩니다.

    for (int i = 0; i < 10; i++)
      {
        for (int j = 0; j < 4; j++)
        {
        fpSpread1.ActiveSheet.Cells[i, j].Text = "Spread.NET";
        }
      }

  4. PrintBackground 이벤트를 생성하고, 이어지는 내용에 따라 이벤트를 정의합니다. 해당 이벤트는 각 페이지가 출력되기 전에 호출됩니다.

    private void fpSpread1_PrintBackground(object sender, FarPoint.Win.Spread.PrintBackgroundEventArgs e)
      {
      // 이벤트 정의
      }

  5. 워터마크로 삽입할 Picture 객체를 생성합니다. 이때 스타일을 StretchAndScale로 설정하여, 워터마크가 원본 이미지 비율은 유지한 채 컨트롤에 맞게 사이즈가 변동될 수 있도록 합니다.

    String fileName = "..\\..\\full-spread.png";
      FarPoint.Win.Picture pic = new FarPoint.Win.Picture(Image.FromFile(fileName), FarPoint.Win.RenderStyle.StretchAndScale);

  6. 워터마크가 들어갈 위치(정렬)을 설정합니다. 예제에서는 인쇄되는 시트의 가로/세로 방향 중앙에 오도록 설정하였습니다.

    pic.AlignHorz = FarPoint.Win.HorizontalAlignment.Center;
      pic.AlignVert = FarPoint.Win.VerticalAlignment.Center;

  7. Picture.Paint 메소드를 호출하여 워터마크를 그립니다. 여기까지가 PrintBackground 이벤트 정의 부분입니다.

    pic.Paint(e.Graphics, e.SheetRectangle);

  8. Button_Click 이벤트를 정의합니다. '출력' 버튼 클릭을 클릭하면 인쇄 미리보기 창이 뜨고, 시트 전체가 출력됩니다.

    이때, PrintInfo 객체의 Opacity 속성을 통해 워터마크의 선명도를 결정할 수 있습니다.

    Opacity 값이 작을수록 워터마크가 선명하게 보이고, Opacity 값이 클수록 워터마크가 흐릿하게 보입니다.

    private void button1_Click(object sender, EventArgs e)
      {
        // 인쇄 설정을 위해 PrintInfo 객체를 생성합니다.
        PrintInfo printInfo = new PrintInfo();
      ​
        // 인쇄 미리보기 옵션을 설정합니다.
        printInfo.Preview = true;
      ​
        // 불투명도를 설정합니다.
        // 불투명도가 높을 수록 워터마크가 흐릿하게 보입니다.
        printInfo.Opacity = 100;
      ​
        // 인쇄 설정을 활성화된 시트에 적용합니다.
        fpSpread1.ActiveSheet.PrintInfo = printInfo;
      ​
        // 인쇄 설정을 적용한 시트를 출력합니다.
        fpSpread1.PrintSheet(fpSpread1.ActiveSheetIndex);
      }

  9. 코드를 실행하고, '출력' 버튼을 클릭하면 아래와 같은 인쇄 미리보기 창을 확인할 수 있습니다.

    07_Watermark_Opacity_0  

    ▲ Opacity가 0일 때

    08_Watermark_Opacity_100  

    ▲ Opacity가 100일 때


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

인쇄 페이지에 워터마크 추가 - 샘플 다운로드





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

spnet.png


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

댓글목록

등록된 댓글이 없습니다.

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

인기글

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