SpreadJSでは、ユーザーに対し、印刷範囲および印刷方法を指定するための各種オプションを提供できます。これにより、大規模なシートであっても、ユーザーはそのシートの一部だけを印刷できるようになります。
シートに表示印刷行を設定することで、印刷時にシートデータを正しいページに印刷できるかどうかを簡単に知ることができます。
sheet.isPrintLineVisible(true);
以下のコンテンツを印刷できます。
以下のコンテンツは印刷できません。
印刷方法
sheet.printメソッドを使用して、すべてのシート、もしくは特定のシートを印刷できます。
spread.print(); // すべてのシートを印刷する。
// spread.print(1 /* sheetIndex */); // 2枚目のシートを印刷する(0ベースのインデックス)。
シートごとに、setRowPageBreakまたはSheet.setColumnPageBreakメソッドを使用して、指定した行または列の前に改ページを挿入できます。
// 6行目の前に改ページを挿入する
sheet.setRowPageBreak(5, true);
// 4列目の前に改ページを挿入する
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: 印刷範囲の終了列インデックスを指定します。
// 自動検出された終了行/列を上書きするように印刷範囲を設定します
printInfo.rowEnd(40);
printInfo.columnEnd(12)
印刷範囲は、実際にはカスタム名「PrintArea」になり、範囲内の行/列を追加または削除すると、自動的に更新されます。=IFERROR(ROWS(PrintArea),"none") のような数式で使用すると、印刷する行数を表示できます。 または、=IF(Sheet1!$A$1,Sheet1!$B$1:$C$5,Sheet1!$D$5:$F$8)のように、数式をカスタム名「Print_Area」に設定して、印刷範囲を動的に設定できます。印刷範囲は、「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)
ヘッダーとフッター:
pageHeaderFooterメソッドを使用して、ヘッダーまたはフッターの印刷情報を取得/設定できます。
ヘッダー/フッターの印刷情報には、normal、first、odd、evenの4種類があります。
そして、それらの1つ以上を使用することができます。説明は次のとおりです:
オプション名 | 優先度 | 説明 |
---|---|---|
normal | Low | すべてのページのヘッダー/フッターに適用されます。 |
first | High | 最初のページのヘッダー/フッターに適用されます。 |
odd | Medium | すべての奇数ページのヘッダー/フッターに適用されます。 |
even | Medium | すべての偶数ページのヘッダー/フッターに適用されます。 |
{
normal:{ // ヘッダー/フッターの種類
header:{ // ヘッダーの領域
left:"", // ヘッダー左側のテキストとフォーマット。
center:"", // ヘッダー中央部のテキストとフォーマット。
right:"", // ヘッダー右側のテキストとフォーマット。
leftImage:"", // ヘッダー左側のイメージ。
centerImage:"", // ヘッダー中央部のイメージ。
rightImage:"", // ヘッダー右側のイメージ。
},
footer:{ // フッターの領域
left:"", // フッター左側のテキストとフォーマット。
center:"", // フッター中央部のテキストとフォーマット。
right:"", // フッター右側のテキストとフォーマット。
leftImage:"", // フッター左側のイメージ。
centerImage:"", // フッター中央部のイメージ。
rightImage:"", // フッター右側のイメージ。
}
}
}
対応フォーマット: &はエスケープ文字として使用され、次のキーワードと一緒に使用して特別なデータを出力します。
すべてのページのヘッダー/フッターを設定します。
printInfo.pageHeaderFooter({
normal: {
header: {
left: "&G",
center: "&\"Comic Sans MS\"System Information",
leftImage: "images/GrapeCity_LOGO.jpg"
},
footer: {
center: "&P/&N"
}
}
})
differentFirstPageを使用して最初のページの異なるヘッダー/フッターを有効にし、最初のページのヘッダー/フッターを設定します。
// 最初のページの別のヘッダー/フッターを有効にします。
printInfo.differentFirstPage(true);
// 最初のページのヘッダー/フッターオプションを設定します。
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を使用して、奇数ページと偶数ページの異なるヘッダー/フッターを有効にし、奇数ページと偶数ページのヘッダー/フッターを設定します。
// 奇数ページと偶数ページの異なるヘッダー/フッターを有効にします。
printInfo.differentOddAndEvenPages(true);
// 奇数ページと偶数ページのヘッダー/フッターオプションを設定します。
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]);
また、ユーザーは奇数ページまたは偶数ページにのみ透かしを追加できます。ページを「奇数」または「偶数」に設定するだけです。
BeforPrintイベント:
SpreadJSは、印刷前のイベントをサポートします:GC.Spread.Sheets.Events.BeforePrint。
このイベントを通して、印刷する前に次のような何らかの操作を行うことができます:
イベントの引数:
spread.bind(GC.Spread.Sheets.Events.BeforePrint, function (e, args) {
args.cancel = true;
});