10. 인쇄 [Winforms] 인쇄 페이지에 워터마크 추가하기
페이지 정보
작성자 GrapeCity 작성일 2021-11-09 11:07 조회 974회 댓글 0건본문
관련링크
인쇄물의 무단 배포를 방지하기 위해, 출력물에 워터마크를 삽입하는 경우가 있습니다.
Spread.NET에서도 스프레드시트를 인쇄할 때 배경이미지 또는 워터마크를 추가할 수 있습니다. 이를 위해서 PrintBackground 이벤트와 PrintInfo.Opacity 속성이 사용됩니다.
'출력' 버튼 클릭 시, 시트 중앙에 Spread.NET 로고가 워터마크로 삽입되며 시트 전체가 출력되는 예제를 살펴보겠습니다.
도구 상자에서 fpSpread 컨트롤과 Button 컨트롤을 찾아 form으로 드래그 앤 드롭합니다.
버튼에 표시되는 텍스트를 변경하고, 두 컨트롤의 도킹 스타일을 설정합니다.
// 버튼에 표시되는 텍스트를 '출력'으로 설정합니다. button1.Text = "출력"; // 버튼과 스프레드의 가장자리가 Form의 가장자리에 도킹되도록 설정합니다. button1.Dock = DockStyle.Top; fpSpread1.Dock = DockStyle.Fill;
시트에 샘플 데이터를 입력합니다. 예제에서는 셀 범위 [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"; } }
PrintBackground 이벤트를 생성하고, 이어지는 내용에 따라 이벤트를 정의합니다. 해당 이벤트는 각 페이지가 출력되기 전에 호출됩니다.
private void fpSpread1_PrintBackground(object sender, FarPoint.Win.Spread.PrintBackgroundEventArgs e) { // 이벤트 정의 }
워터마크로 삽입할 Picture 객체를 생성합니다. 이때 스타일을 StretchAndScale로 설정하여, 워터마크가 원본 이미지 비율은 유지한 채 컨트롤에 맞게 사이즈가 변동될 수 있도록 합니다.
String fileName = "..\\..\\full-spread.png"; FarPoint.Win.Picture pic = new FarPoint.Win.Picture(Image.FromFile(fileName), FarPoint.Win.RenderStyle.StretchAndScale);
워터마크가 들어갈 위치(정렬)을 설정합니다. 예제에서는 인쇄되는 시트의 가로/세로 방향 중앙에 오도록 설정하였습니다.
pic.AlignHorz = FarPoint.Win.HorizontalAlignment.Center; pic.AlignVert = FarPoint.Win.VerticalAlignment.Center;
Picture.Paint 메소드를 호출하여 워터마크를 그립니다. 여기까지가 PrintBackground 이벤트 정의 부분입니다.
pic.Paint(e.Graphics, e.SheetRectangle);
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); }
코드를 실행하고, '출력' 버튼을 클릭하면 아래와 같은 인쇄 미리보기 창을 확인할 수 있습니다.
▲ Opacity가 0일 때
▲ Opacity가 100일 때
샘플을 다운로드하여 전체 코드를 확인해 보실 수 있습니다.
지금 바로 Spread.NET을 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.