Node.js でのスプレッドシートの画像変換中のデフォルトフォント設定(C++ 経由)
スプレッドシートを画像にレンダリングする際のデフォルトフォントの設定
以下のサンプルコードは、Excelファイルを開きます。最初のワークシートのセル A4 に “Christmas Time Font text” のテキストを設定し、フォント名はインストールされていない “Christmas Time Personal Use” にします。次に、そのワークシートの画像を2枚取得します。1枚目は ImageOrPrintOptions.getDefaultFont() プロパティを Courier New に設定して取得し、2枚目は ImageOrPrintOptions.getDefaultFont() プロパティを Times New Roman に設定して取得します。
これが ImageOrPrintOptions.getDefaultFont() プロパティを Courier New に設定した後の出力画像です。
これが ImageOrPrintOptions.getDefaultFont() プロパティを Times New Roman に設定した後の出力画像です。
サンプルコード
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Loads the workbook which contains hidden external links
const wb = new AsposeCells.Workbook(filePath);
// Set default font of the workbook to none
let s = wb.getDefaultStyle();
s.getFont().setName("");
wb.setDefaultStyle(s);
// Access first worksheet.
const ws = wb.getWorksheets().get(0);
// Access cell A4 and add some text inside it.
const cell = ws.getCells().get("A4");
cell.putValue("This text has some unknown or invalid font which does not exist.");
// Set the font of cell A4 which is unknown.
let st = cell.getStyle();
st.getFont().setName("UnknownNotExist");
st.getFont().setSize(20);
st.setIsTextWrapped(true);
cell.setStyle(st);
// Set first column width and fourth column height
ws.getCells().setColumnWidth(0, 80);
ws.getCells().setRowHeight(3, 60);
// Create image or print options.
const opts = new AsposeCells.ImageOrPrintOptions();
opts.setOnePagePerSheet(true);
opts.setImageType(AsposeCells.ImageType.Png);
// Render worksheet image with Courier New as default font.
opts.setDefaultFont("Courier New");
let sr = new AsposeCells.SheetRender(ws, opts);
sr.toImage(0, "out_courier_new_out.png");
// Render worksheet image again with Times New Roman as default font.
opts.setDefaultFont("Times New Roman");
sr = new AsposeCells.SheetRender(ws, opts);
sr.toImage(0, "times_new_roman_out.png");