SpreadJS는 인쇄할 내용과 인쇄 방법을 결정할 수 있는 사용자 옵션을 제공합니다. 이 기능은 큰 시트가 있지만 사용자가 해당 시트의 특정 부분만 인쇄할 수 있게 하려는 경우에 유용할 수 있습니다.
시트에 인쇄선 표시를 설정할 수 있습니다. 인쇄선을 사용하면 인쇄 시 시트 데이터가 올바른 페이지에 인쇄되는지 여부를 쉽게 알 수 있습니다.
sheet.isPrintLineVisible(true);
인쇄 시 다음 내용을 인쇄할 수 있습니다.
다음 내용은 인쇄할 수 없습니다.
인쇄 방법
sheet.print 메서드를 사용하여 모든 시트 또는 지정된 시트를 인쇄할 수 있습니다.
spread.print(); // print all sheets
// spread.print(1 /* sheetIndex */); // print the 2nd sheet ( 0 based index )
각 시트에 대해 setRowPageBreak 또는 Sheet.setColumnPageBreak 메서드를 사용하여 지정된 행이나 열 앞에 페이지 나누기를 삽입할 수 있습니다.
// insert a page break before the 6th row
sheet.setRowPageBreak(5, true);
// insert a page break before the 4th column
sheet.setColumnPageBreak(3, true);
각 시트에 대해 Sheet object.printInfo 메서드를 사용하여 자세한 옵션을 설정할 수 있습니다. 다음은 몇 가지 옵션입니다.
모양:
showGridLine: 눈금선을 인쇄할지 여부(기본값은 true).
showBorder: 전체 컨트롤 주위에 윤곽선 테두리를 인쇄할지 여부.
showColumnHeader/showRowHeader: 열/행 머리글을 인쇄하는 방법, PrintVisibilityType 열거 값.
var sheet = spread.sheets[0];
var printInfo = sheet.printInfo();
printInfo.showGridLine(false);
printInfo.showRowHeader(GC.Spread.Sheets.Print.PrintVisibilityType.show);
printInfo.showColumnHeader(GC.Spread.Sheets.Print.PrintVisibilityType.show);
인쇄 범위:
rowStart: 인쇄 범위의 시작 행 인덱스를 지정합니다.
rowEnd: 인쇄 범위의 끝 행 인덱스를 지정합니다.
columnStart: 인쇄 범위의 시작 열 인덱스를 지정합니다.
columnEnd: 인쇄 범위의 끝 열 인덱스를 지정합니다.
// set print range to override auto detected end row / column
printInfo.rowEnd(40);
printInfo.columnEnd(12)
현재 인쇄 범위는 실제로 사용자 정의 이름인 "PrintArea"이고, 범위 내에서 행/열을 추가 또는 제거하는 경우 자동으로 업데이트됩니다. =IFERROR(ROWS(PrintArea),"none")에서처럼 수식에서 이 인쇄 범위를 사용하여 인쇄할 행 수를 표시할 수 있습니다.
아니면 수식을 사용자 정의 이름 "Print_Area"로 설정하여 인쇄 범위를 동적으로 설정할 수 있습니다(예: =IF(Sheet1!$A$1,Sheet1!$B$1:$C$5,Sheet1!$D$5:$F$8)). Sheet1!$A$1이 실제 값이면 인쇄 범위는 Sheet1!$B$1:$C$5이고 그렇지 않으면 Sheet1!$D$5:$F$8입니다.
참고: 인쇄 범위는 한 가지 방법을 설정하여 사용자 정의 이름 "Print_Area" 또는 printInfo를 설정하는 것이 좋습니다. 둘 다 함께 사용하지 마십시오.
반복 항목:
repeatColumnStart: 각 페이지의 왼쪽에 인쇄할 반복 범위의 시작 열 인덱스를 지정합니다.
repeatColumnEnd: 각 페이지의 왼쪽에 인쇄할 반복 범위의 끝 열 인덱스를 지정합니다.
repeatRowStart: 각 페이지의 맨 위에 인쇄할 반복 범위의 시작 행 인덱스를 지정합니다.
repeatRowEnd: 각 페이지의 맨 위에 인쇄할 반복 범위의 끝 행 인덱스를 지정합니다.
printInfo.repeatRowStart(0);
printInfo.repeatRowEnd(1);
printInfo.repeatColumnStart(0)
printInfo.repeatColumnEnd(0)
헤더/푸터:
printInfo에서 pageHeaderFooter 메서드를 사용하여 헤더 또는 푸터 인쇄 정보를 가져오거나 설정할 수 있습니다.
헤더/푸터 인쇄 정보에는 normal, first, odd, even 등 네 가지 유형이 있습니다.
네 가지 유형 중 하나 이상을 사용할 수 있습니다. 설명은 다음과 같습니다.
옵션 이름 | 우선순위 | 설명 |
---|---|---|
normal | Low | 모든 페이지의 헤더/푸터에 적용. |
first | High | 첫 페이지의 헤더/푸터에 적용. |
odd | Medium | 모든 홀수 페이지의 헤더/푸터에 적용. |
even | Medium | 모든 짝수 페이지의 헤더/푸터에 적용. |
{
normal:{ // type of header/footer
header:{ // header area
left:"", // the text and format of left section of header area.
center:"", // the text and format of center section of header area.
right:"", // the text and format of right section of header area.
leftImage:"", // the image of left section of header area.
centerImage:"", // the image of center section of header area.
rightImage:"", // the image of right section of header area.
},
footer:{ // footer area
left:"", // the text and format of left section of footer area.
center:"", // the text and format of center section of footer area.
right:"", // the text and format of right section of footer area.
leftImage:"", // the image of left section of footer area.
centerImage:"", // the image of center section of footer area.
rightImage:"", // the image of right section of footer area.
}
}
}
지원되는 서식: &는 이스케이프 문자로 사용되며 특수 데이터를 인쇄하려면 다음 키워드와 함께 사용하십시오.
모든 페이지의 헤더/푸터 설정.
printInfo.pageHeaderFooter({
normal: {
header: {
left: "&G",
center: "&\"Comic Sans MS\"System Information",
leftImage: "images/GrapeCity_LOGO.jpg"
},
footer: {
center: "&P/&N"
}
}
})
첫 페이지의 다른 헤더/푸터를 활성화하려면 differentFirstPage를 사용하고 첫 페이지의 헤더/푸터 설정.
// Enable different header/footer of first page.
printInfo.differentFirstPage(true);
// set the header/footer options of first page.
printInfo.pageHeaderFooter({
normal: {
header: {
left: "&G",
center: "&\"Comic Sans MS\"System Information",
leftImage: "images/GrapeCity_LOGO.jpg"
},
footer: {
center: "&P/&N"
}
},
first: {
header: {
left: "&G",
center: "&\"Comic Sans MS\"System Information",
leftImage: "images/GrapeCity_LOGO.jpg"
},
footer: {
center: "&P/&N"
}
}
})
홀수 및 짝수 페이지의 다른 헤더/푸터를 활성화하려면 differentOddAndEvenPages를 사용하고 홀수 및 짝수 페이지의 헤더/푸터 설정.
// Enable different header/footer of odd and even pages.
printInfo.differentOddAndEvenPages(true);
// set the header/footer options of odd and even pages.
printInfo.pageHeaderFooter({
normal: {
header: {
left: "&G",
center: "&\"Comic Sans MS\"System Information",
leftImage: "images/GrapeCity_LOGO.jpg"
},
footer: {
center: "&P/&N"
}
},
odd: {
header: {
left: "&G",
center: "&\"Comic Sans MS\"System Information",
leftImage: "images/GrapeCity_LOGO.jpg"
},
footer: {
center: "&P/&N"
}
},
even: {
header: {
left: "&G",
center: "&\"Comic Sans MS\"System Information",
leftImage: "images/GrapeCity_LOGO.jpg"
},
footer: {
center: "&P/&N"
}
},
})
워터마크:
사용자는 spreadJS에서 인쇄할 때 워터마크를 추가할 수 있습니다.
사용자는 다음과 같이 한 페이지에 여러 워터마크를 추가할 수 있습니다.
var printInfo = activeSheet.printInfo();
var watermark1 = {x:0, y:0, width:100, height:100, imageSrc:".image/watermart1.jpg", page:"all"};
var watermark2 = {x:400, y:400, width:30, height:30, imageSrc:".image/watermart2.jpg", page:"all"};
printInfo.watermark([watermark1, watermark2]);
사용자는 페이지 0, 1, 2, 3, 5, 10에만 워터마크를 추가하는 것처럼 다음과 같이 서로 다른 페이지에 한 워터마크를 추가할 수 있습니다.
var printInfo = activeSheet.printInfo();
var watermark1 = {x:0, y:0, width:100, height:100, imageSrc:".image/watermart1.jpg", page:"0,1,2,3,5,10"};
printInfo.watermark([watermark1]);
또한 사용자는 홀수 또는 짝수 페이지에만 워터마크를 추가할 수 있습니다. 페이지를 "odd" 또는 "even"으로 설정하면 됩니다.
BeforPrint 이벤트:
SpreadJS는 인쇄 전 이벤트를 지원합니다. GC.Spread.Sheets.Events.BeforePrint.
사용자는 다음과 같이 이 이벤트를 통해 인쇄하기 전에 작업을 수행할 수 있습니다.
이벤트 args:
spread.bind(GC.Spread.Sheets.Events.BeforePrint, function (e, args) {
args.cancel = true;
});