新しいONLYOFFICE APIメソッドで2ページ目からカスタムページ番号を挿入する方法

2025年02月19日著者:Denis

ONLYOFFICEマクロは、エディターの機能を拡張し、特定のニーズに合わせてカスタマイズするための強力なツールです。ONLYOFFICEでは、常に新機能の追加に努めており、バージョン8.3のリリースにより、ワークフローを効率化するための多数の新しいAPIメソッドを導入しました。この記事では、これらのメソッドのうちの1つを使い、文書全体にカスタムページ番号を挿入するマクロの作成方法をステップバイステップでご紹介します。

How to insert custom page numbers from the second page using the new ONLYOFFICE API method

SetStartPageNumberメソッドについて

SetStartPageNumberメソッドは、ApiSectionクラスの一部です。この新しいメソッドを使うと、文書内の特定のセクションの開始ページ番号を定義できます。以下は、その実装例です。

let doc = Api.GetDocument();
let paragraph = doc.GetElement(0);
paragraph.AddText("このセクションは2ページ目から始まります");
paragraph.AddPageBreak();
paragraph.AddText("3ページ目");
paragraph.AddPageBreak();
paragraph.AddText("4ページ目");
let section = paragraph.GetSection();
section.SetStartPageNumber(2);
let header = section.GetHeader("default", true);
paragraph = header.GetElement(0);
paragraph.AddText("Page #");
paragraph.AddPageNumber();
let footer = section.GetFooter("default", true);
paragraph = footer.GetElement(0);
paragraph.AddText("Page #");
paragraph.AddPageNumber();

このブログ記事の後半では、このメソッドを使用して文書の2ページ目の開始ページ番号を設定する方法について詳しく解説します。

マクロの構築

ドキュメントとセクションの取得

マクロはまず、Api.GetDocument()を使用してアクティブな文書にアクセスします。次に、doc.GetSections()[0]を使用して最初のセクションを取得します。これが最初のページを表します。

let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];

最初のページの設定

// 最初のページ設定
firstSection.SetTitlePage(true);
// タイトルページのヘッダー/フッターを削除
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
  • SetTitlePage(true)は、最初のページをタイトルページとしてマークします。
  • RemoveHeader(“title”)およびRemoveFooter(“title”)により、タイトルページにヘッダーやフッターが表示されないようにします。

以降のページの設定

// 以降のページ設定
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // 開始ページ番号を設定。デフォルトは0(1番目の番号付きページが1になる)
  • finalSectionは、ヘッダー、フッター、ページ番号を適用するセクションを表します。
  • SetStartPageNumber(0)により、2ページ目から番号を開始し、最初の番号付きページを「1」とします。

ヘッダーの設定

// ヘッダー設定
let header = finalSection.GetHeader("default", true);
const headerText = header.GetElement(0);
headerText.AddPageNumber();

// ヘッダーの配置(以下のいずれかを有効にしてください):
 // headerText.SetJc("left");   // 左揃え
headerText.SetJc("center"); // 中央揃え
 // headerText.SetJc("right");  // 右揃え
  • GetHeader(“default”, true)で、セクションのヘッダーを取得します。
  • ヘッダーの最初の要素はGetElement(0)でアクセスされます。
  • AddPageNumber()で動的なページ番号が挿入されます。
  • SetJc()メソッドにより、ヘッダーの配置(左、中央、右)を設定します。

フッターの設定

// フッター設定(フッターにページ番号を挿入する場合はコメントを解除してください)
let footer = finalSection.GetFooter("default", true);
const footerText = footer.GetElement(0);
footerText.AddPageNumber();

// フッターの配置(以下のいずれかを有効にしてください):
 // footerText.SetJc("left");    // 左揃え
// footerText.SetJc("center");  // 中央揃え
// footerText.SetJc("right");   // 右揃え
  • GetFooter(“default”, true)で、セクションのフッターを取得します。
  • フッターの最初の要素はGetElement(0)でアクセスされます。
  • AddPageNumber()でフッターに動的なページ番号が挿入されます。
  • SetJc()メソッドにより、フッターの配置を設定します。

注意:デフォルトでは、フッターの設定はコメントアウトされています。必要に応じて、ヘッダー、フッター、または両方にページ番号を挿入するように設定してください。

以下が、マクロ全体のコードです。

let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];

// 最初のページ設定
firstSection.SetTitlePage(true);
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");

// 以降のページ設定
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // 開始ページ番号を設定(デフォルト:0 → 1番目の番号付きページが1となる)

// ヘッダー設定
let header = finalSection.GetHeader("default", true);
const headerText = header.GetElement(0);
headerText.AddPageNumber();
// headerText.SetJc("left");   // 左揃え
headerText.SetJc("center"); // 中央揃え
// headerText.SetJc("right");  // 右揃え

// フッター設定(フッターにページ番号を挿入する場合は下記のコメントを解除してください)
// let footer = finalSection.GetFooter("default", true);
// const footerText = footer.GetElement(0);
// footerText.AddPageNumber();
// footerText.SetJc("left");    // 左揃え
// footerText.SetJc("center");  // 中央揃え
// footerText.SetJc("right");   // 右揃え

このマクロを実行して、どのように動作するかを確認してみましょう!

このマクロが皆さんのツールキットにとって価値あるものとなり、ワークフローの効率化に役立つことを願っています。ONLYOFFICEでは、ユーザーが特定のニーズに合わせて機能をカスタマイズできる柔軟性を常に提供しています。今回のリリースで追加された数多くの新しいAPIメソッドを活用して、独自のマクロを作成してみてください。ご質問やご提案がありましたら、お気軽にご連絡ください。

ONLYOFFICEの無料アカウントを登録する

オンラインでドキュメント、スプレッドシート、スライド、フォーム、PDFファイルの閲覧、編集、共同作業