Document - スコープ付き、グローバル
Document API には、PDF の初期化、コンテンツの追加、PDF のクローズを行うメソッドが用意されています。コンテンツを追加した後、ドキュメントをターゲットレコードに添付できます。
この API は、 ServiceNow PDF Generation Utilities プラグイン (com.snc.apppdfgenerator) の一部であり、 sn_pdfgeneratorutils 名前空間内で提供されます。このプラグインはデフォルトでは有効になっています。
- Cell:Cell オブジェクトをテーブルのセルとして作成します。この API を使用して、セルを書式設定し、パラグラフや画像などの追加ブロックを含めることができます。
- Color:PDF の要素に適用できるセル、テーブル、行などの色属性を定義するために使用する Color オブジェクトを作成します。
- Image:画像と PDF に挿入するそのレイアウトを表す Image オブジェクトを作成します。スケール、配置、境界色などの属性を定義できます。
- Line:PDF に線を描画するメソッドを使用して、Line オブジェクトを作成します。
- Paragraph:PDF 内のテキストのブロックを表す Paragraph オブジェクトを作成します。
- PdfPage:PDF ページとサイズ、幅、色などのその属性を表す PdfPage オブジェクトを作成します。
- Style:フォントサイズ、境界線、配置などのプロパティを定義するスタイルを作成します。同じスタイルを複数のオブジェクトに同時に適用することができます。
- Table:PDF ドキュメントに追加する Table オブジェクトを作成します。各セルで使用するデータを定義し、スタイル、マージン、配置を設定します。
次の例は、Document API といくつかのコンポーネント (テーブル、セル、パラグラフなど) を使用して、ベーシックな PDF を作成する方法を示しています。結果は、PDF 形式のインシデント [incident] テーブルのインシデントのリストです。この例をインスタンスでテストするには、<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] テーブルに一覧表示されます。
Document - Document(PdfPage pageSize)
Document オブジェクトをインスタンス化し、PDF ドキュメントをインスタンス化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| pageSize | PdfPage | PDF ページのサイズです。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | PDF ドキュメント |
次の例は、Document オブジェクトを作成し、PDF を返す方法を示しています。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document(pageSize);
Document – 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");
Document – addAuthor(文字列 author)
PDF ドキュメントプロパティの author フィールドに名前を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| author | 文字列 | ドキュメントの作成者の名前です。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、 PDF ドキュメントプロパティの author フィールドに名前を追加する方法を示しています 。 ドキュメントの使用例については、「ドキュメント API」を参照してください。
var author = "John Do";
document.addAuthor(author);
Document – addImage(画像 image)
ドキュメントに画像を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| image | 画像 | ドキュメントに追加する画像です。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントに画像を追加する方法を示しています。 ドキュメントの使用例については、「ドキュメント 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");
Document – addNewLine()
ドキュメントに新しい空の行を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントに新しい行を追加する方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.addNewLine();
Document – 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();
Document – addNewPageAtIndex(数値 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);
Document – addParagraph(パラグラフ paragraph)
ドキュメントにパラグラフを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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);
Document – addTable(テーブル table)
Document – close()
ドキュメントを閉じます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントを閉じる方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.close();
Document – createDocument(PdfPage pageSize)
指定されたページサイズのドキュメントを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| pageSize | PdfPage | ドキュメントのページサイズです。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | PDF ドキュメントです。 |
次の例は、ドキュメントを作成する方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
Document – 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
Document – getPageSize()
ドキュメントのデフォルトのページサイズを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | PdfPage API を使用して設定されたデフォルトのページサイズの値です。 可能な値:
|
次の例は、ドキュメントのページサイズを取得する方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var pagesize = document.getPageSize();
Document – isClosed()
ドキュメントが閉じられているか開かれているかを示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし | ドキュメントが開かれているか閉じられているかを示すフラグです。 有効な値:
デフォルト:true |
次の例は、ドキュメントのページサイズを取得する方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var closed = document.isClosed();
Document – saveAsAttachment(文字列 tableName, 文字列 tableSysId, 文字列 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");
Document – setBaseDirection(文字列 direction)
文字認識に基づいて並べ替えるベーステキストのフロー方向を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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");
Document – setMargins(数値 topMargin, 数値 rightMargin, 数値 bottomMargin, 数値 leftMargin)
ドキュメントのページマージンサイズを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| topMargin | 数値 | 上マージンの高さ (ポイント)。 |
| rightMargin | 数値 | 右マージンの幅 (ポイント)。 |
| bottomMargin | 数値 | 下マージンの高さ (ポイント)。 |
| leftMargin | 数値 | 左マージンの幅 (ポイント)。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、ドキュメントのページマージンを設定する方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.setMargins(72,36,36,36);