作成日: 2021/08/24 最終更新日: 2021/11/10
文書種別
不具合
状況
修正済み
詳細
fitPagesTall()および fitPagesWide()と改ページの印刷設定が同時に設定されている場合、印刷した結果やPDFに出力した結果が、Excelで出力した結果と異なり、印刷範囲が正しく出力されません。
回避方法
SpreadJS (Ver.14.2.3)で修正済み。
Ver.14.2.3より前のバージョンでは、印刷前やPDF出力前に、各シートの改ページ設定を一時的に解除し、印刷後に設定を戻す方法で問題を回避できます。
【サンプルコード】
document.getElementById('savePDF').onclick = function() {
let sheetCount = spread.getSheetCount();
let colPageBreaks = [], rowPageBreaks = [];
let isPageBreakCleared = [];
for (let i=0; i< sheetCount; i++){
let checkSheet = spread.getSheet(i);
let printInfo = checkSheet.printInfo();
let isFitPagesTallOrWide;
let isFitPagesTall = printInfo.fitPagesTall();
let isFitPagesWide = printInfo.fitPagesWide();
if (isFitPagesTall != -1 || isFitPagesWide != -1) {
isFitPagesTallOrWide = true;
isPageBreakCleared.push(true);
} else {
isPageBreakCleared.push(false);
}
let colCount = checkSheet.getColumnCount();
let rowCount = checkSheet.getRowCount();
let colBreaks = [];
if (isFitPagesTallOrWide) {
for (c=0; c<colCount; c++){
if (checkSheet.getColumnPageBreak(c)){
console.log("clear ColumnPageBreak");
colBreaks.push(c);
checkSheet.setColumnPageBreak(c, false);
}
}
}
let rowBreaks = [];
if (isFitPagesTallOrWide) {
for (r=0; c<rowCount; r++){
if (checkSheet.getRowPageBreak(r)){
console.log("clear RowPageBreak");
rowBreaks.push(r);
checkSheet.setRowPageBreak(r, false);
}
}
}
colPageBreaks.push(colBreaks);
rowPageBreaks.push(rowBreaks);
}
spread.savePDF(function (blob) {
var fileName = 'test.pdf';
saveAs(blob, fileName);
for (let i=0; i< sheetCount; i++){
let checkSheet = spread.getSheet(i);
if (isPageBreakCleared[i]) {
let colBreaks = colPageBreaks[i];
let rowBreaks = rowPageBreaks[i];
if (colBreaks.length > 0) {
for (let c=0;c<colBreaks.length; c++){
console.log("reset ColumnPageBreak");
checkSheet.setColumnPageBreak(colBreaks[c], true);
}
}
if (rowBreaks.length > 0) {
for (let r=0;c<rowBreaks.length; r++){
console.log("reset RowPageBreak");
checkSheet.setRowPageBreak(rowBreaks[r], true);
}
}
}
}
}, function (error) {
console.log(error);
}, {
title: 'Test Title',
author: 'Test Author',
subject: 'Test Subject',
keywords: 'Test Keywords',
creator: 'test Creator'
});
};