開発者向けONLYOFFICEスタイルおよびカラーAPIガイド
ONLYOFFICEプラグインの開発は、多くの場合、ユーザーがドキュメントとどのようにやり取りするかを改善することを目的としています。たとえば、ハイライター、フォーマットクリーナー、テーマ付きUI要素などを追加することです。
より効率的に作業できるように、ここではプラグインの見た目や操作感を簡単に制御できる主要なスタイルおよびカラーAPIメソッドをまとめました。
このブログ記事では、明確な解説、実用的な例、そして開発体験をスムーズにするためのヒントをご紹介します。

スタイルコンテキストを理解する
ONLYOFFICEプラグインAPIは、ApiRange、ApiParagraph、ApiTextPrといったオブジェクトを通じて、ドキュメントの外観を柔軟にカスタマイズできる手段を提供します。
これらのインターフェースにより、開発者はフォント属性、段落の配置、色、その他の視覚的プロパティをプラグインスクリプトから直接変更できます。
以下はテキストスタイルを適用する簡単な例です。
const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const oTextPr = oRange.GetTextPr();
oTextPr.Bold(true);
oTextPr.Italic(true);
oTextPr.SetColor(255, 0, 0); // RGB red

このコードスニペットは、複数のスタイルを組み合わせて動的な書式設定を実現する方法を示しています。
よく使われるスタイルおよびカラーのメソッド
ハイライター、フォーマットクリーナー、テーマベースのUI要素など、ドキュメントのスタイルを扱うONLYOFFICEプラグインを開発する際、開発者は色、フォント、テキスト属性を簡単に処理できるメソッドを必要とします。
そこでここでは、実際に役立つスタイル&カラーAPIをまとめ、スムーズに統合できるようにヒントや例を添えています。
| メソッド | 説明 | 例 |
|---|---|---|
| SetColor(r, g, b) | RGB値を使ってテキストの色を設定します。 | oTextPr.SetColor(0, 102, 204) |
| SetHighlight(sColor) | テキストにハイライト(背景色)を適用します。 | oRange.SetHighlight("lightGray") |
| SetBackgroundColor(r, g, b) | 段落全体に背景色を設定します。 | oParagraph.SetBackColor(230, 230, 230) |
| SetBold(true/false) | 太字をオン/オフします。 | oTextPr.SetBold(true) |
| SetItalic(true/false) | イタリック体をオン/オフします。 | oTextPr.SetItalic(true) |
| SetUnderline(true/false) | 下線を追加または削除します。 | oTextPr.SetUnderline(true) |
| SetFontSize(nSize) | フォントサイズをポイント単位で変更します。 | oTextPr.SetFontSize(14) |
| SetFontName(name) | フォントファミリーを設定します。 | oTextPr.SetFontName("Calibri") |
| ApiCell | スプレッドシートのセルを表し、スタイルを適用できます。 | const cell = sheet.GetRange("A1"); |
| SetCellColor(r, g, b) | スプレッドシートセルの背景色を設定します。 | cell.SetCellColor(255, 230, 191) |

段落スタイルの場合、ApiParagraphインターフェースを使って同様のメソッドを利用できます。
const oParagraph = oRange.GetParagraph(0);
oParagraph.SetBackColor(230, 230, 230); // 明るいグレーの背景
oParagraph.SetAlign("center");
これらのメソッドは、ONLYOFFICEプラグインにおけるテキストおよび段落のフォーマット処理の基礎を形成します。スプレッドシートのセルも同様に、ApiCellやSetCellColorなどのAPIを用い、同じスタイルロジックで操作できます。
カラーオブジェクトの扱い
ONLYOFFICEでは、スタイルメソッドでRGBベースのカラー定義を使用します。もしプロジェクトでデザインシステムやブランドテーマに一般的なHEXカラーコードを使用している場合は、以下のような小さなヘルパー関数で簡単に変換できます。
function hexToRGB(hex) {
const bigint = parseInt(hex.replace("#", ""), 16);
const r = (bigint >> 16) & 255;
const g = (bigint >> 8) & 255;
const b = bigint & 255;
return [r, g, b];
}
// 使用例:
const [r, g, b] = hexToRGB("#3498db");
oTextPr.SetColor(r, g, b);
これにより、デザインリソースとプラグイン機能をシームレスに統合できます。
安定したスタイリングのためのヒントとコツ
- UI操作後の正確さを保つため、変更を適用する前にドキュメント範囲を再選択してください。
- 複数のスタイル操作を一度にチェーンせず、個別の関数呼び出しとして分けて実行するのがおすすめです。
- GetRangeBySelect()が有効なオブジェクトを返しているか、常に検証チェックを行ってください。
- Asc.plugin.getTheme()を使用してテーマモードに対応し、カラー値を動的に調整します。
これらの小さな工夫で、より安定し、テーマに一貫性のあるプラグイン動作を実現できます。
まとめ
ONLYOFFICEのスタイルAPIは、ドキュメント、プレゼンテーション、スプレッドシートのいずれを扱う場合でも一貫したアプローチを維持しています。
カラーの適用、フォント調整、段落の配置など、共通の概念を再利用することで、開発者は異なるエディター間でコードを簡単に適応させながら、統一されたスタイリングロジックを保つことができます。
この記事では、その情報を一か所にまとめることで、プラグイン開発をより迅速・スムーズ・直感的に進められるよう支援することを目的としています。
ご質問やご提案がある場合は、ぜひこちらからご連絡ください。一緒にONLYOFFICEのドキュメントをさらに改善していきましょう。
ONLYOFFICEの無料アカウントを登録する
オンラインでドキュメント、スプレッドシート、スライド、フォーム、PDFファイルの閲覧、編集、共同作業


