Document - スコープ付き、グローバル

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む19読むのに数分
  • Document API は、PDF を初期化し、コンテンツを追加し、PDF を閉じるためのメソッドを提供します。コンテンツを追加した後、ドキュメントをターゲットレコードに添付できます。

    この API は PDF Generation Utilities プラグイン (com.snc.apppdfgenerator) の一部 ServiceNow であり、 sn_pdfgeneratorutils 名前空間内で提供されます。このプラグインはデフォルトでは有効になっています。

    この API は、一連のクラスを利用して、PDF を構成するさまざまな要素を構築します。
    • CellCell オブジェクトをテーブルのセルとして作成します。この API を使用して、セルを書式設定し、パラグラフや画像などの追加ブロックを含めることができます。
    • ColorPDF の要素に適用できるセル、テーブル、行などの色属性を定義するために使用する Color オブジェクトを作成します。
    • Image画像と PDF に挿入するそのレイアウトを表す Image オブジェクトを作成します。スケール、配置、境界色などの属性を定義できます。
    • LinePDF に線を描画するメソッドを使用して、Line オブジェクトを作成します。
    • ParagraphPDF 内のテキストのブロックを表す Paragraph オブジェクトを作成します。
    • PdfPagePDF ページとサイズ、幅、色などのその属性を表す PdfPage オブジェクトを作成します。
    • Styleフォントサイズ、境界線、配置などのプロパティを定義するスタイルを作成します。同じスタイルを複数のオブジェクトに同時に適用することができます。
    • TablePDF ドキュメントに追加する 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] テーブルに一覧表示されます。

    インシデント番号と説明が一覧表示された 2 列のテーブルとして出力される PDF の例。

    Document - Document(PdfPage pageSize)

    Document オブジェクトをインスタンス化し、PDF ドキュメントをインスタンス化します。

    表 : 1. パラメーター
    名前 タイプ 説明
    pageSize PdfPage PDF ページのサイズです。
    表 : 2. 返される内容
    タイプ 説明
    オブジェクト 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 ページになります。
    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントに新しいページを追加する方法を示しています。 ドキュメントの使用例については、「ドキュメント 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 フィールドに名前を追加します。

    表 : 5. パラメーター
    名前 タイプ 説明
    author 文字列 ドキュメントの作成者の名前です。
    表 : 6. 返される内容
    タイプ 説明
    なし

    次の例は、 PDF ドキュメントプロパティの author フィールドに名前を追加する方法を示しています 。 ドキュメントの使用例については、「ドキュメント API」を参照してください。

    var author = "John Do";
    
    document.addAuthor(author);

    Document – addImage(画像 image)

    ドキュメントに画像を追加します。

    表 : 7. パラメーター
    名前 タイプ 説明
    image 画像 ドキュメントに追加する画像です。
    表 : 8. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントに画像を追加する方法を示しています。 ドキュメントの使用例については、「ドキュメント 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()

    ドキュメントに新しい空の行を追加します。

    表 : 9. パラメーター
    名前 タイプ 説明
    なし
    表 : 10. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントに新しい行を追加する方法を示しています。 ドキュメントの使用例については、「ドキュメント 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 ページになります。
    表 : 11. パラメーター
    名前 タイプ 説明
    なし
    表 : 12. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントに新しい空白ページを追加する方法を示しています。 ドキュメントの使用例については、「ドキュメント 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()新しい空白ページをドキュメントに追加します。強制的に改ページして、ドキュメント内で新しい章またはセクションを開始します。
    表 : 13. パラメーター
    名前 タイプ 説明
    インデックス 番号 新しいページを挿入する位置です。
    表 : 14. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントの位置 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)

    ドキュメントにパラグラフを追加します。

    表 : 15. パラメーター
    名前 タイプ 説明
    paragraph パラグラフ パラグラフオブジェクトとして指定されたテキストのブロックです。
    表 : 16. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントにパラグラフを追加する方法を示しています。 ドキュメントの使用例については、「ドキュメント 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)

    ドキュメントにテーブルを追加します。

    表 : 17. パラメーター
    名前 タイプ 説明
    テーブル テーブル ドキュメントに挿入するテーブルです。
    表 : 18. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントにテーブルを追加する方法を示しています。テーブルの定義方法の詳細については、「テーブル API」を参照してください。 ドキュメントの使用例については、「ドキュメント API」を参照してください。

    var table = new sn_pdfgeneratorutils.Table([70,200], false);
    
    document.addTable(table);

    Document – close()

    ドキュメントを閉じます。

    表 : 19. パラメーター
    名前 タイプ 説明
    なし
    表 : 20. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントを閉じる方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。

    var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
    var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
    
    document.close();

    Document – createDocument(PdfPage pageSize)

    指定されたページサイズのドキュメントを作成します。

    表 : 21. パラメーター
    名前 タイプ 説明
    pageSize PdfPage ドキュメントのページサイズです。
    表 : 22. 返される内容
    タイプ 説明
    オブジェクト PDF ドキュメントです。

    次の例は、ドキュメントを作成する方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。

    var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
    
    var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);

    Document – getPageCount()

    ドキュメントのページ数を取得します。

    表 : 23. パラメーター
    名前 タイプ 説明
    なし
    表 : 24. 返される内容
    タイプ 説明
    番号 ドキュメントのページ数です。

    次の例は、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()

    ドキュメントのデフォルトのページサイズを取得します。

    表 : 25. パラメーター
    名前 タイプ 説明
    なし
    表 : 26. 返される内容
    タイプ 説明
    文字列 PdfPage API を使用して設定されたデフォルトのページサイズの値です。
    可能な値:
    • A4:595 x 842 ポイント
    • EXECUTIVE:522 x 756 ポイント
    • LETTER:612 x 792 ポイント
    • LEDGER:792 x 1224 ポイント

    次の例は、ドキュメントのページサイズを取得する方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。

    var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
    
    var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
     
    var pagesize = document.getPageSize();

    Document – isClosed()

    ドキュメントが閉じられているか開かれているかを示します。

    表 : 27. パラメーター
    名前 タイプ 説明
    なし
    表 : 28. 返される内容
    タイプ 説明
    なし ドキュメントが開かれているか閉じられているかを示すフラグです。
    有効な値:
    • true:ドキュメントは閉じられています。
    • false:ドキュメントは開かれています。

    デフォルト: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)

    指定されたターゲットテーブルにドキュメントファイルを添付します。

    表 : 29. パラメーター
    名前 タイプ 説明
    tableName 文字列 ドキュメントを添付するテーブルの名前です。
    tableSysId 文字列 ドキュメントを添付するレコードの sys_id です。
    fileName 文字列 添付するドキュメントの名前です。
    表 : 30. 返される内容
    タイプ 説明
    文字列 添付ファイル [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)

    文字認識に基づいて並べ替えるベーステキストのフロー方向を設定します。

    表 : 31. パラメーター
    名前 タイプ 説明
    direction 文字列 テキストのフロー方向です。
    有効な値:
    • LEFT_TO_RIGHT:テキストフローを左から右に並べます。テキストの方向は、左横書き言語の文字が検出された場合にのみ並べ替えられます。
    • RIGHT_TO_LEFT:テキストフローを右から左に並べます。テキストの方向は、右横書き言語の文字が検出された場合にのみ並べ替えられます。

    デフォルト:LEFT_TO_RIGHT

    表 : 32. 返される内容
    タイプ 説明
    なし

    次の例は、テキストフローを左横書きに設定する方法を示しています。 ドキュメントの使用例については、「ドキュメント 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)

    ドキュメントのページマージンサイズを設定します。

    表 : 33. パラメーター
    名前 タイプ 説明
    topMargin 数値 上マージンの高さ (ポイント)。
    rightMargin 数値 右マージンの幅 (ポイント)。
    bottomMargin 数値 下マージンの高さ (ポイント)。
    leftMargin 数値 左マージンの幅 (ポイント)。
    表 : 34. 返される内容
    タイプ 説明
    なし

    次の例は、ドキュメントのページマージンを設定する方法を示しています。 ドキュメントの使用例については、「ドキュメント API」を参照してください。

    var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
    var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
    
    document.setMargins(72,36,36,36);