! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

스프레드 인쇄 관련 문의 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 스프레드 인쇄 관련 문의

페이지 정보

작성자 chen0516 작성일 2024-03-26 15:13 조회 33회 댓글 0건
제품 버전 : Spread NET .13 Winform
컨트롤 이름 : spread.printsheet

본문




안녕하세요.

스프레드 시트 인쇄관련 문의드립니다.


A4용지에 출력한다고 가정했을때 한 페이지 안에 시트 3개를 출력하는 방법이 있을까요?


각 페이지마다 한번에 출력되는게 아닌 한 페이지에 시트 3개 또는 스프레드 3개를 출력하는 방법이 있는지 문의드립니다.


아래 이미지처럼 여백없이 이어서 출력 가능한지 문의드립니다.

추가로 미리보기는 사용하지 않아도 되고 PDF, 이미지 파일 두 방식으로 저장되길 원합니다.


 

      Dim printinfo_test As New FarPoint.Win.Spread.PrintInfo
        printinfo_test.ShowPrintDialog = False
        printinfo_test.PdfFileName = "spread_multi_print_test.PDF"
        printinfo_test.PrintToPdf = True
        printinfo_test.ShowColor = True
        printinfo_test.ShowColumnHeader = False
        printinfo_test.ShowRowHeader = False
        For i As Integer = 0 To FpSpread1.Sheets.Count - 1
            FpSpread1.SetPrintInfo(printinfo_test, i)
        Next
        FpSpread1.PrintSheet(-1, True)


  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: 스프레드 인쇄 관련 문의

추천1 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 MESCIUS써니 작성일 2024-03-27 15:05 댓글 1건

본문

첨부파일

chen0516 님, 안녕하세요.

메시어스입니다.


문의하신 기능은 아쉽게도 Spread.NET에서 직접적으로/공식적으로 지원하지 않는 기능입니다.


하나의 페이지에는 하나의 시트만 인쇄가 됩니다. 말씀하신 시나리오처럼 여러 시트를 하나의 페이지로 인쇄하기 위해서는, 

  1. 임의의 시트를 생성하고
  2. 인쇄할 내용을 하나의 시트에 복사한 후
  3. 임의의 시트를 인쇄하고,
  4. 임의의 시트를 제거

하는 방법을 적용해보실 수 있습니다.


아래 샘플 코드는 상기 내용에 따라 작성된 코드입니다. 샘플 코드를 참고 및 수정하여 사용해주시기 바라며, PDF 파일로 저장한 결과물은 첨부된 OnePage.pdf 파일을 참고해주시기 바랍니다.

// 1. 새로운 시트를 생성합니다.
fpSpread1.Sheets.Count++;
FarPoint.Win.Spread.SheetView sv = fpSpread1.Sheets[3];

// 2. sheet1,2,3을 복사하여 새로운 시트에 붙여 넣습니다.
for(int i=0; i<fpSpread1.Sheets.Count - 1; i++)
{
        // 원본 시트를 복사합니다.
    fpSpread1.Sheets[i].ClearSelection();
    fpSpread1.Sheets[i].AddSelection(
        0,
        0,
        fpSpread1.Sheets[i].GetLastNonEmptyRow(FarPoint.Win.Spread.NonEmptyItemFlag.Data) + 1,
        fpSpread1.Sheets[i].GetLastNonEmptyColumn(FarPoint.Win.Spread.NonEmptyItemFlag.Data) + 1
        );
    fpSpread1.Sheets[i].ClipboardCopy(FarPoint.Win.Spread.ClipboardCopyOptions.All);
    fpSpread1.Sheets[i].ClearSelection();

    // 임시 시트에 붙여 넣기 합니다.
    sv.ClearSelection();
    sv.SetActiveCell(
        sv.GetLastNonEmptyRow(FarPoint.Win.Spread.NonEmptyItemFlag.Data) + 1,
        0
        );
    sv.ClipboardPaste(FarPoint.Win.Spread.ClipboardPasteOptions.All);
}

sv.PrintInfo.ShowColor = true;
sv.PrintInfo.PrintToPdf = true;
sv.PrintInfo.PdfFileName = "OnePage.pdf";

// 3. 임시 시트를 인쇄합니다.
fpSpread1.PrintSheet(fpSpread1.Sheets.Count - 1, false);

// 4. 임시 시트를 삭제합니다.
fpSpread1.Sheets.Remove(sv);


단, 각 시트 별 열 너비가 다른 경우에는 예측하신 디자인과 인쇄 결과에 다소 차이가 있을 수 있습니다. 이 점 유의하여 주시기 바랍니다.


아울러, 시트를 이미지 파일로 저장하는 기능은 Spread.NET WinForms V15 이상에서 지원되는 기능으로, SaveImage 메서드를 사용하여 시트에서 원하는 영역을 이미지로 생성할 수 있습니다.


아래 링크된 도움말 문서에서 SaveImage 메서드 사용 방법을 확인하실 수 있습니다.

- 이미지 파일로 저장


감사합니다.

메시어스 드림

댓글목록

삭제된 댓글

난나야 작성일

삭제된 댓글 입니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.