ドキュメント:スコープ対象、グローバル
ドキュメント API は、PDF を初期化し、コンテンツを追加し、PDF を閉じるためのメソッドを提供します。コンテンツを追加した後、ドキュメントをターゲットレコードに添付できます。
この API は ServiceNow PDF 生成ユーティリティプラグイン (com.snc.apppdfgenerator) の一部であり、 sn_pdfgeneratorutils 名前空間内で提供されます。このプラグインはデフォルトでアクティブ化されています。
- セル – テーブル内のセルとして Cell オブジェクトを作成します。この API を使用してセルを書式設定し、段落や画像などの追加のブロックを含めることができます。
- 色 – PDF 内の要素に適用できる色属性を定義するために使用される Color オブジェクトを作成します。セル、テーブル、行など。
- 画像 – PDF での画像とそのレイアウト挿入を表す Image オブジェクトを作成します。スケール、配置、境界線の色などの属性を定義できます。
- 線グラフ – PDF に線を描画するメソッドを使用して Line オブジェクトを作成します。
- パラグラフ – PDF 内のテキストブロックを表す段落オブジェクトを作成します。
- PDFページ – PDF ページとその属性を表す PdfPage オブジェクトを作成します。サイズ、幅、色など。
- スタイル – フォントサイズ、境界線、配置などのプロパティを定義するためのスタイルを作成します。同じスタイルを複数のオブジェクトに同時に適用できます。
- テーブル – PDF ドキュメントに追加するテーブルオブジェクトを作成します。各セルで使用するデータを定義し、スタイル、余白、配置を設定します。
次の例は、 ドキュメント API といくつかのコンポーネント (テーブル、セル、段落など) を使用して基本的な PDF を作成する方法を示しています。結果は、PDF でリストされたインシデント [incident] テーブルのインシデントのリストです。PDF を添付するインシデントレコードのsys_idに置き換えることで <sys_id> 、この例をインスタンスでテストできます。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var whiteColor = sn_pdfgeneratorutils.Color([1,1,1]);
var greyColor = sn_pdfgeneratorutils.Color([0.8,0.8,0.8]);
var headerBgColor = new sn_pdfgeneratorutils.Color([0.4,0.6,0.8]);
// Query the Incident table
var gr = new GlideRecord("incident");
gr.query();
// declare table by providing width array and Boolean for large table
var table = new sn_pdfgeneratorutils.Table(true, [70,200], false);
var headerStyle = new sn_pdfgeneratorutils.Style;
headerStyle.setBackgroundColor(headerBgColor);
headerStyle.setTextAlignment("text-center");
headerStyle.setBold();
headerStyle.setFontColor(whiteColor);
table.setHeaderStyle(headerStyle);
var nParagraph = new sn_pdfgeneratorutils.Paragraph("Number");
var sParagraph = new sn_pdfgeneratorutils.Paragraph("Short Description");
var hdrCell1 = new sn_pdfgeneratorutils.Cell;
var hdrCell2 = new sn_pdfgeneratorutils.Cell;
hdrCell1.addParagraph(nParagraph);
hdrCell2.addParagraph(sParagraph);
table.addHeaderCell(hdrCell1);
table.addHeaderCell(hdrCell2);
var row = 0;
while(gr.next()) {
var numCell = new sn_pdfgeneratorutils.Cell;
var sdCell = new sn_pdfgeneratorutils.Cell;
var numberParagraph = new sn_pdfgeneratorutils.Paragraph(gr.number);
var sdParagraph = new sn_pdfgeneratorutils.Paragraph(gr.short_description);
numCell.addParagraph(numberParagraph);
sdCell.addParagraph(sdParagraph);
if (row % 2 == 1) {
table.setDefaultbackGroundColor(greyColor);
} else {
table.setDefaultbackGroundColor(whiteColor);
}
table.addCell(numCell);
table.addCell(sdCell);
row = row + 1;
}
document.addTable(table);
document.saveAsAttachment("incident", "<sys_id>", "SampleGenerationTest.pdf");
PDF 添付ファイルが添付ファイル [sys_attachment] テーブルに一覧表示されます。
ドキュメント - ドキュメント (PdfPage pageSize)
ドキュメントオブジェクトをインスタンス化し、PDF ドキュメントを生成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| pageSize | PDF ページ | PDF のページサイズ。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | PDF ドキュメント。 |
次の例は、 Document オブジェクトを作成して PDF を返す方法を示しています。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document(pageSize);
ドキュメント – addAndStartNewPage()
現在のページを終了して新しいページを作成することで、ドキュメントにページを追加します。
- addNewPage() – ドキュメントに新しい空白ページを追加します。ドキュメントの新しい章またはセクションを開始するために改ページを強制するために使用します。
- addNewPageAtIndex():ドキュメントの指定されたインデックスに新しいページを追加します。たとえば、インデックスを 6 に設定すると、ドキュメント内の 6 ページ目が挿入されるか、既存の 6 ページ目の位置にページが挿入されます。元の 6 ページ目は 7 ページ目になります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントに新しいページを追加する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("LETTER");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var para1 = new sn_pdfgeneratorutils.Paragraph("This text lands on the first page.");
var para2 = new sn_pdfgeneratorutils.Paragraph("This text lands on the new page.");
document.addParagraph(para1);
document.addAndStartNewPage();
document.addParagraph(para2);
// save pdf as attachment to target record in the Incident table
document.saveAsAttachment("incident", "<record_sys_id>", "newPage.pdf");
ドキュメント – addAuthor(文字列 author)
PDF ドキュメントのプロパティの作成者フィールドに名前を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| author | 文字列 | ドキュメントの作成者の名前。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、PDF ドキュメントのプロパティの作成者フィールドに名前を追加する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var author = "John Do";
document.addAuthor(author);
ドキュメント – addImage(画像画像)
ドキュメントに画像を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| イメージ | 画像 | ドキュメントに追加する画像。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントに画像を追加する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("LETTER");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
// declare image using sys attachment
var image = new sn_pdfgeneratorutils.Image("<imgAttachment_sys_id>");
// add the image to the doc
document.addImage(image);
document.saveAsAttachment("incident", "<record_sys_id>", "docWithImage.pdf");
ドキュメント – addNewLine()
ドキュメントに新しい空行を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントに新しい行を追加する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.addNewLine();
ドキュメント – addNewPage()
ドキュメントに新しい空白ページを追加します。ドキュメントの新しい章またはセクションを開始するために改ページを強制するために使用します。
- addAndStartNewPage()– 現在のページを終了して新しいページを作成することで、ドキュメントにページを追加します。
- addNewPageAtIndex():ドキュメントの指定されたインデックスに新しいページを追加します。たとえば、インデックスを 6 に設定すると、ドキュメント内の 6 ページ目が挿入されるか、既存の 6 ページ目の位置にページが挿入されます。元の 6 ページ目は 7 ページ目になります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントに新しい空白ページを追加する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
Usage:
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.addNewPage();
ドキュメント – addNewPageAtIndex(Number index)
:ドキュメントの指定されたインデックスに新しいページを追加します。たとえば、インデックスを 6 に設定すると、ドキュメント内の 6 ページ目が挿入されるか、既存の 6 ページ目の位置にページが挿入されます。元の 6 ページ目は 7 ページ目になります。
- addAndStartNewPage()– 現在のページを終了して新しいページを作成することで、ドキュメントにページを追加します。
- addNewPage() – ドキュメントに新しい空白ページを追加します。ドキュメントの新しい章またはセクションを開始するために改ページを強制するために使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| インデックス | 番号 | 新しいページを挿入する位置。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントの位置 6 に新しい PDF ページを追加する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var index = 6;
document.addNewPageAtIndex(index);
ドキュメント – addParagraph(段落段落)
ドキュメントに段落を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| paragraph | パラグラフ | 段落オブジェクトとして提供されるテキストブロック。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントに段落を追加する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var para = "Lorem ipsum dolor sit amet.";
document.addParagraph(para);
ドキュメント – addTable(テーブルテーブル)
ドキュメントにテーブルを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| テーブル | テーブル | ドキュメントに挿入するテーブル。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントにテーブルを追加する方法を示しています。テーブルの定義方法の詳細については、 テーブル API を参照してください。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var table = new sn_pdfgeneratorutils.Table([70,200], false);
document.addTable(table);
ドキュメント – close()
ドキュメントを閉じます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントを閉じる方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.close();
ドキュメント – createDocument(PdfPage pageSize)
指定されたページサイズでドキュメントを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| pageSize | PDF ページ | ドキュメントのページサイズ。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | PDF ドキュメント。 |
次の例は、ドキュメントの作成方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
ドキュメント – getPageCount()
ドキュメントのページ数を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 番号 | ドキュメントのページ数。 |
次の例は、9 ページのドキュメントのページ数を取得する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var count = document.getPageCount();
gs.info("The number of pages is " + count);
出力:
The number of pages is 9
ドキュメント – getPageSize()
ドキュメントのデフォルトのページサイズを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | PdfPage API を使用して設定されたデフォルトのページサイズの値。 可能な値:
|
次の例は、ドキュメントのページサイズを取得する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var pagesize = document.getPageSize();
ドキュメント – isClosed()
ドキュメントが閉じているか開いているかを示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし | ドキュメントが開いているか閉じられているかを示すフラグ。 有効な値:
デフォルト:true |
次の例は、ドキュメントのページサイズを取得する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var closed = document.isClosed();
ドキュメント – saveAsAttachment(String tableName, String tableSysId, String fileName)
指定されたターゲットテーブルにドキュメントファイルを添付します。
| 名前 | タイプ | 説明 |
|---|---|---|
| tableName | 文字列 | ドキュメントを添付するテーブルの名前。 |
| tableSysId | 文字列 | ドキュメントを添付するレコードのSys_id。 |
| fileName | 文字列 | 添付するドキュメントの名前。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 添付ファイル [sys_attachment] テーブル内の添付ドキュメントのSys_id。 |
次の例は、インシデントレコードにドキュメントを添付する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
// Additional document properties
document.saveAsAttachment("incident", "<record_sys_id>", "SampleDocGeneration.pdf");
ドキュメント – setBaseDirection(文字列の方向)
文字認識に基づいて並べ替えるベーステキストのフロー方向を設定します
| 名前 | タイプ | 説明 |
|---|---|---|
| direction | 文字列 | テキストのフロー方向。 有効な値:
デフォルト:LEFT_TO_RIGHT |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、テキストフローを左から右に設定する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.setBaseDirection("RIGHT_TO_LEFT");
ドキュメント – setMargins(Number topMargin, Number rightMargin, Number bottomMargin, Number leftMargin)
ドキュメントのページ余白サイズを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| topMargin | 番号 | 上マージンの高さ (ポイント単位)。 |
| 右マージン | 番号 | 右マージンの幅 (ポイント単位)。 |
| 下マージン | 番号 | 下マージンの高さ (ポイント単位)。 |
| 左マージン | 番号 | 左マージンの幅 (ポイント単位)。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントのページ余白を設定する方法を示しています。 ドキュメントの使用例については、「 ドキュメント API」 を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.setMargins(72,36,36,36);