PDFGenerationAPI - スコープ付き、グローバル
PDFGenerationAPI は、PDF 変換と PDF フィールドの処理をサポートします。
この API は、 ServiceNow PDF Generation Utilities プラグイン (com.snc.apppdfgenerator) の一部であり、 sn_pdfgeneratorutils 名前空間内で提供されます。このプラグインはデフォルトでは有効になっています。
- HTML 文字列から PDF を動的に生成してレコードに添付する
- PDFGenerationAPI – convertToPDF(文字列 html, 文字列 targetTable, 文字列 targetTableSysId, 文字列 pdfName, 文字列 fontFamilySysId, オブジェクト documentConfiguration)
- PDFGenerationAPI – convertToPDFWithHeaderFooter(文字列 html, 文字列 targetTable, 文字列 targetTableSysId, 文字列 pdfName, オブジェクト headerFooterInfo, 文字列 fontFamilySysId, オブジェクト documentConfiguration)
- PDF 内のフィールドに入力する
- PDF に署名する
- 塗りつぶされたフィールドの編集をフラット化または部分的にフラット化として制限 – PDFGenerationAPI –fillDocumentFieldsAndFlatten(オブジェクト fieldsMap, 文字列 sysId, 文字列 tableName, 文字列 tableSysId, 文字列 pdfName, オブジェクト flatten)
- PDF のページサイズとフィールドデータの取得
- PDFで情報を編集– PDFGenerationAPI – redact(オブジェクト inputJson)
PDFGenerationAPI – PDFGenerationAPI()
新しい PDFGenerationAPI オブジェクトをインスタンス化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
次の例は、PDFGenerationAPI オブジェクトを作成する方法を示しています。
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
PDFGenerationAPI – convertToPDF(文字列 html, 文字列 targetTable, 文字列 targetTableSysId, 文字列 pdfName, 文字列 fontFamilySysId, オブジェクト documentConfiguration)
HTML 文字列を PDF ドキュメントに変換します。
この方法では、ページサイズA4 – 595 × 842ポイントを使用してPDFを作成します。このサイズを超えると、コンテンツは切り捨てられます。
ページサイズ、向き、ページ番号などの追加設定を含む PDF を生成するには、 convertToPDFWithHeaderFooter() を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| html | 文字列 | PDF ドキュメントに変換する HTML。 |
| targetTable | 文字列 | 変換された PDF を添付するテーブルの名前。 |
| targetTableSysId | 文字列 | 変換された PDF を添付するレコードの sys_id。 |
| pdfName | 文字列 | PDF に付ける名前。 デフォルト:添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| fontFamilySysId | 文字列 | オプション。PDF に使用するフォントファミリーの sys_id。この sys_id は、PDF 生成フォントファミリ [sys_pdf_generation_font_family] テーブルからのものです。 デフォルト:なし |
| documentConfiguration | オブジェクト | オプション。目次の構成とページ番号の構成を含むオブジェクト。 |
| documentConfiguration.toc_config | 文字列 | オプション。PDF に使用する目次構成の sys_id。この sys_id は、目次構成 [doc_toc_config] テーブルからのものです。 デフォルト:なし |
| documentConfiguration.page_number_config | 文字列 | オプション。PDF に使用するページ番号構成の sys_id。この sys_id はページ番号構成 [doc_page_number_config] テーブルからのものです。 デフォルト:なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 変換に成功した場合は PDF 添付ファイルの sys_id を含むオブジェクト、失敗した場合はエラーメッセージ。 |
| <Object>.attachment_id | HTML 変換に成功した場合は、変換されて添付された PDF の sys_id。ファイルは、添付ファイル [sys_attachment] テーブルにリストされます。 データタイプ:文字列 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 可能な値:
データタイプ:文字列 |
| <Object>.request_id | 変更プロデューサー要求レコードの sys_id。 データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、HTML を PDF に変換して、その PDF をインシデント [incident] テーブル内のレコードに添付する方法を示しています。
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
// (Option) get HTML from the description field of an incident record
var gr = new GlideRecord("incident");
var html;
if (gr.get("<tableSysId>")) {
html = gr.description.toString();
}
var result = v.convertToPDF(html, "incident", "<target_sys_id>", "myPDF");
gs.info(JSON.stringify(result));
出力:
{"attachment_id":"<sys_id>","message":"Conversion is successful.","request_id":"<change_sys_id>","status":"success"}
PDFGenerationAPI – convertToPDFWithHeaderFooter(文字列 html, 文字列 targetTable, 文字列 targetTableSysId, 文字列 pdfName, オブジェクト headerFooterInfo, 文字列 fontFamilySysId, オブジェクト documentConfiguration)
HTML 文字列を、ヘッダーとフッターのコンテンツを含む PDF に変換します。
- ヘッダーとフッターの情報
- マージンのサイズ
- 向き
- 列挙
- ページサイズ
| 名前 | タイプ | 説明 |
|---|---|---|
| html | 文字列 | PDF ドキュメントに変換する HTML。 |
| targetTable | 文字列 | 変換された PDF を添付するテーブルの名前。 |
| targetTableSysId | 文字列 | 変換された PDF を添付するレコードの sys_id。 |
| pdfName | 文字列 | PDF に付ける名前。 デフォルト:添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| headerFooterInfo | オブジェクト | PDF のヘッダーとフッターの詳細を定義します。 |
| headerFooterInfo.FooterImageAlignment | 文字列 | フッター内の画像の位置を設定します。 有効な値:
|
| headerFooterInfo.FooterImageAttachmentId | 文字列 | 添付ファイル [sys_attachment] テーブル内のフッター画像の sys_id。ファイルタイプがインスタンスでサポートされているかどうかを確認するには、[システムのプロパティ] > [セキュリティ] に移動し、[添付可能なファイル拡張子のリスト (カンマ区切り)] フィールドにリストされているかどうかを確認します。 |
| headerFooterInfo.FooterImageHeight | 文字列 | フッター画像の高さ。 デフォルト:50 ポイント |
| headerFooterInfo.FooterText | 文字列 | PDF の各ページの下部に配置するフッターテキスト。 |
| headerFooterInfo.FooterTextAlignment | 文字列 | フッター内のテキストの位置を設定します。この値が headerFooterInfo.FooterImageAlignment で指定された領域と一致も競合もしていないことを確認してください。 有効な値:
|
| headerFooterInfo.GeneratePageNumber | 文字列 | PDF のページ番号を生成するかどうかを示すフラグ。 有効な値:
デフォルト:true |
| headerFooterInfo.HeaderImageAlignment | 文字列 | ヘッダー内の画像の位置を設定します。 有効な値:
|
| headerFooterInfo.HeaderImageAttachmentId | 文字列 | 添付ファイル [sys_attachment] テーブル内のヘッダー画像の sys_id。ファイルタイプがインスタンスでサポートされているかどうかを確認するには、[システムのプロパティ] > [セキュリティ] に移動し、[添付可能なファイル拡張子のリスト (カンマ区切り)] フィールドにリストされているかどうかを確認します。 |
| headerFooterInfo.HeaderImageHeight | 文字列 | ヘッダー画像の高さ。 デフォルト:50 ポイント |
| headerFooterInfo.LeftOrRightMargin | 文字列 | 左右のマージンのサイズ。ページの左側または右側に配置すると、ヘッダーとフッターの詳細がこの領域に配置されます。 デフォルト:36 ポイント |
| headerFooterInfo.PageOrientation | 文字列 | ページの向き。 有効な値:
デフォルト:Portrait (縦向き) |
| headerFooterInfo.PageSize | 文字列 | ドキュメントのページサイズです。 有効な値:
ページサイズを超えると、コンテンツは切り捨てられます。 |
| headerFooterInfo.TopOrBottomMargin | 文字列 | 上下のマージンのサイズ。ヘッダーとフッターの詳細がこの領域に配置されます。 デフォルト:72 ポイント |
| fontFamilySysId | 文字列 | オプション。PDF に使用するフォントファミリーの sys_id。この sys_id は、PDF 生成フォントファミリ [sys_pdf_generation_font_family] テーブルからのものです。 デフォルト:なし |
| documentConfiguration | オブジェクト | オプション。目次の構成とページ番号の構成を含むオブジェクト。 |
| documentConfiguration.toc_config | 文字列 | オプション。PDF に使用する目次構成の sys_id。この sys_id は、目次構成 [doc_toc_config] テーブルからのものです。 デフォルト:なし |
| documentConfiguration.page_number_config | 文字列 | オプション。PDF に使用するページ番号構成の sys_id。この sys_id はページ番号構成 [doc_page_number_config] テーブルからのものです。 デフォルト:なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 変換に成功した場合は PDF 添付ファイルの sys_id を含むオブジェクト、失敗した場合はエラーメッセージ。 |
| <Object>.attachment_id | HTML 変換に成功した場合は、変換されて添付された PDF の sys_id。ファイルは、添付ファイル [sys_attachment] テーブルにリストされます。 データタイプ:文字列 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 可能な値:
データタイプ:文字列 |
| <Object>.request_id | 変更プロデューサー要求レコードの sys_id。 データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、HTML を「myPDF」という名前の PDF に変換して、その PDF を添付ファイルとしてインシデント [incident] テーブル内のレコードに追加する方法を示しています。PDF には、添付ファイルを介して提供されるヘッダーとフッターが含まれています。
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
// (Option) get HTML from the description field of an incident record
var gr = new GlideRecord("incident");
var html;
if (gr.get("<tableSysId>")) {
html = gr.description.toString();
}
var hfInfo = new Object();
hfInfo["HeaderImageAttachmentId"] = "<hdrImgAttSysId>";
hfInfo["HeaderImageAlignment"] = "left";
hfInfo["FooterImageAttachmentId"] = "<ftrImgAttSysId>";
hfInfo["FooterImageAlignment"] = "TOP_CENTER";
hfInfo["FooterText"] = "Sample Footer Message";
hfInfo["PageSize"] = "A4";
hfInfo["GeneratePageNumber"] = "false";
hfInfo["TopOrBottomMargin"] = "36";
hfInfo["LeftOrRightMargin"] = "24";
var result = v.convertToPDFWithHeaderFooter(html, "incident", "<targetTbl_sys_id>", "myPDF", hfInfo);
gs.info(JSON.stringify(result));
出力:
{"attachment_id":"<sys_id>","message":"Conversion is successful.","request_id":"<change_sys_id>","status":"success"}
PDFGenerationAPI – fillDocumentFields(オブジェクト fieldsMap, 文字列 sysId, 文字列 tableName, 文字列 tableSysId, 文字列 pdfName)
編集可能な PDF のフィールドに入力し、指定されたレコードに添付します。
- fillDocumentFieldsAndFlatten() – 編集可能な PDF のフィールドに入力し、データフィールドをフラット化して、指定されたレコードに添付します。
- fillFieldsAndMergeSignature() – 編集可能な PDF のフィールドに入力し、署名画像を追加して、データフィールドをフラット化し、指定されたレコードに添付します。
- getFilledDocumentWithSignatureAsBase64() – 編集可能な PDF のフィールドに入力し、画像を作成して、それを Base64 でエンコードされた PDF に変換します。
| 名前 | タイプ | 説明 |
|---|---|---|
| fieldsMap | オブジェクト | オプション。PDF フィールド名と入力する値によるキー値マップ。getDocumentFields() メソッドを使用して、使用可能なフィールドのリストを取得します。 |
| sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| tableName | 文字列 | PDF が添付されるレコードを含むテーブルの名前。この値は、添付ファイル [sys_attachment] テーブルにリストされている添付ファイルと同じ行にあります。 |
| tableSysId | 文字列 | PDF が添付されるレコードの sys_id。この値は、添付ファイル [sys_attachment] テーブルにリストされている添付ファイルと同じ行にあります。 |
| pdfName | 文字列 | PDF に付ける名前。 デフォルト:添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 成功した場合は更新された PDF 添付ファイルの sys_id を含むオブジェクト、それ以外の場合はエラーメッセージ。 |
| <Object>.attachment_id | 操作が成功した場合、入力された PDF の sys_id。ファイルは、添付ファイル [sys_attachment] テーブルにリストされます。 データタイプ:文字列 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 有効な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、編集可能な PDF 内のフィールドに入力する方法を示しています。
var fieldMap = new Object();
fieldMap["Address"] = "Address value here";
fieldMap["State"] = "State value here";
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.fillDocumentFields(fieldMap, "<attachmentSysId>", "<tableName>", "<tableSysId>", "pdfName");
gs.info(JSON.stringify(result));
出力:
{"attachment_id":"<sys_id>","message":"Request completed successfully.","status":"success"}
PDFGenerationAPI –fillDocumentFieldsAndFlatten(オブジェクト fieldsMap, 文字列 sysId, 文字列 tableName, 文字列 tableSysId, 文字列 pdfName, オブジェクト flatten)
編集可能な PDF のフィールドに入力し、データフィールドをフラット化して、指定されたレコードに添付します。
- fillDocumentFields() – 編集可能な PDF のフィールドに入力し、指定されたレコードに添付します。
- fillFieldsAndMergeSignature() – 編集可能な PDF のフィールドに入力し、署名画像を追加して、データフィールドをフラット化し、指定されたレコードに添付します。
- getFilledDocumentWithSignatureAsBase64() – 編集可能な PDF のフィールドに入力し、画像を作成して、それを Base64 でエンコードされた PDF に変換します。
| 名前 | タイプ | 説明 |
|---|---|---|
| fieldsMap | オブジェクト | オプション。PDF フィールド名と入力する値によるキー値マップ。getDocumentFields() メソッドを使用して、使用可能なフィールドのリストを取得します。 |
| sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| tableName | 文字列 | PDF が添付されるレコードを含むテーブルの名前。この値は、添付ファイル [sys_attachment] テーブルにリストされている添付ファイルと同じ行にあります。 |
| tableSysId | 文字列 | PDF が添付されるレコードの sys_id。この値は、添付ファイル [sys_attachment] テーブルにリストされている添付ファイルと同じ行にあります。 |
| pdfName | 文字列 | PDF に付ける名前。 デフォルト:添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| flatten | オブジェクト | オプション。フィールドをフラット化すると、他のユーザーが情報を変更できないようにフィールドをロックできます。キーを「FlattenType」として指定し、フラット化オプションを文字列として指定します。 有効な値:
デフォルト:fully_flatten |
| タイプ | 説明 |
|---|---|
| オブジェクト | 成功した場合は更新された PDF 添付ファイルの sys_id を含むオブジェクト、それ以外の場合はエラーメッセージ。 |
| <Object>.attachment_id | 操作が成功した場合、入力された PDF の sys_id。ファイルは、添付ファイル [sys_attachment] テーブルにリストされます。 データタイプ:文字列 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 有効な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、フィールドに入力してフィールドを編集可能な PDF をフラット化する方法を示しています。
var fieldMap = new Object();
fieldMap["Last Name First Name Middle Initial"] = "Tuter Abel E.";
fieldMap["Date of Birth"] = "08101952";
fieldMap["US SSN"] = "111-22-9999";
fieldMap["Address"] = "PO Box 344";
fieldMap["City"] = "Jerome";
fieldMap["State"] = "AZ";
fieldMap["Zip"] = "86331";
var flatten = new Object();
flatten["FlattenType"] = "partially_flatten";
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.fillDocumentFieldsAndFlatten(fieldMap, "<attachmentSysId>", "<tableName>", "<tableSysId>", "pdfName", flatten);
gs.info(JSON.stringify(result));
出力:
"attachment_id":"<sys_id>","message":"Request completed successfully.","status":"success"
PDFGenerationAPI – fillFieldsAndMergeSignature(オブジェクト fieldsMap, 文字列 sysId, 文字列 tableName, 文字列 tableSysId, 文字列 pdfName, PdfMergeSignRequestor requestor, オブジェクト flatten)
編集可能な PDF のフィールドに入力し、署名画像を追加して、データフィールドをフラット化し、指定されたレコードに添付します。
- fillDocumentFields() – 編集可能な PDF のフィールドに入力し、指定されたレコードに添付します。
- fillDocumentFieldsAndFlatten() – 編集可能な PDF のフィールドに入力し、データフィールドをフラット化して、指定されたレコードに添付します。
- getFilledDocumentWithSignatureAsBase64() – 編集可能な PDF のフィールドに入力し、画像を作成して、それを Base64 でエンコードされた PDF に変換します。
| 名前 | タイプ | 説明 |
|---|---|---|
| fieldsMap | オブジェクト | オプション。PDF フィールド名と入力する値によるキー値マップ。getDocumentFields() メソッドを使用して、使用可能なフィールドのリストを取得します。 |
| sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| tableName | 文字列 | PDF が添付されるレコードを含むテーブルの名前。この値は、添付ファイル [sys_attachment] テーブルにリストされている添付ファイルと同じ行にあります。 |
| tableSysId | 文字列 | PDF が添付されるレコードの sys_id。この値は、添付ファイル [sys_attachment] テーブルにリストされている添付ファイルと同じ行にあります。 |
| pdfName | 文字列 | PDF に付ける名前。 デフォルト:添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| requestor | PdfMergeSignRequestor | pdfMergeSignRequestor から返された署名入力。 |
| flatten | オブジェクト | オプション。フィールドをフラット化すると、他のユーザーが情報を変更できないようにフィールドをロックできます。キーを「FlattenType」として指定し、フラット化オプションを文字列として指定します。 有効な値:
デフォルト:fully_flatten |
| タイプ | 説明 |
|---|---|
| オブジェクト | 成功した場合は更新された PDF 添付ファイルの sys_id を含むオブジェクト、それ以外の場合はエラーメッセージ。 |
| <Object>.attachment_id | 操作が成功した場合、入力された PDF の sys_id。ファイルは、添付ファイル [sys_attachment] テーブルにリストされます。 データタイプ:文字列 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 有効な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、デフォルト設定の署名でフィールドを入力してフィールドを完全にフラット化する方法を示しています。
var fieldMap = new Object();
fieldMap["Address_Salutation"] = "Address value here";
var paramMap = new Object();
paramMap["FlattenType"] = "partially_flatten";
var requestor = new sn_pdfgeneratorutils.PdfMergeSignRequestor;
requestor.createRequest("<attachmentSysId>", "incident", "<tableSysId>", "filledPdf");
requestor.addSignatureMapping(6, 40, 50, 188, 44, "<signatureSysId>");
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.fillFieldsAndMergeSignature(fieldMap, "<attachmentSysId>", "incident", "<tableSysId>", requestor, "filledPdf", paramMap);
gs.info(JSON.stringify(result));
{"attachment_id":"5440d993dbed3010d66be1191396194e","message":"Request completed successfully.","status":"success"}PDFGenerationAPI – getDocumentFields(文字列 sysId)
PDF ドキュメント内の編集可能なフィールドのリストを取得します。チェックするファイルを手動で開かなくても、PDF の編集可能なフィールドを一覧表示できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 署名済み PDF の ID を含むオブジェクト。それ以外の場合はエラーメッセージ。 |
| <Object>.fields | 要求が成功した場合、PDF の各フィールドの名前を含むリスト。 データタイプ:文字列のアレイ |
| <Object>.message | 成功またはエラーを確認するメッセージ。 可能な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、PDF 添付ファイルのフィールドを取得する方法を示しています。
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.getDocumentFields("attachmentSysId");
gs.info(JSON.stringify(result));
出力:
{"message":"Request completed successfully.","fields":["NP_formFillable","reset","print","1SSN","Signature.1","5sigDate","Check Box21"],"status":"success"}
PDFGenerationAPI – getDocumentFieldsType(文字列 sysId)
PDF ドキュメントから、一連の編集可能なフィールドのフィールドタイプを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 成功した場合はそれぞれの PDF フィールドタイプを含むオブジェクト、失敗した場合はエラーメッセージ。 |
| <Object>.fields_type | 成功した場合は指定した PDF 内の各フィールドをリスト表示するオブジェクト、失敗した場合はエラーメッセージ。 データタイプ:オブジェクト |
| <Object>.fields_type.<field> | 各フィールドのページ番号を含むオブジェクト。<field> の名前はフィールドのラベルを表します。たとえば、タイプを表す自動作成されたラベルである「SSN」などです。 データタイプ:オブジェクト |
| <Object>.fields_type.<field>.fieldsDetails | 選択肢フィールドのタイプの各オプションのフィールド名とそれに対応する値を含むオブジェクトのリスト。 適用可能なタイプ:
データタイプ:アレイ |
| <Object>.fields_type.<field>.fieldsDetails.fieldName | 選択肢フィールドの名前。 データタイプ:文字列 |
| <Object>.fields_type.<field>.fieldsDetails.value | 選択肢フィールドの値。 データタイプ:文字列 |
| <Object>.fields_type.<field>.pageNumber | このフィールドに対応する PDF ページ番号。 データタイプ:文字列 |
| <Object>.fields_type.<field>.type | PDF のフィールドタイプ。 可能な値:
データタイプ:文字列 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 可能な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、PDF 添付ファイルのフィールドタイプを取得する方法を示しています。結果には、分かりやすくするため手動で返されるものが含まれています。ここでは簡潔にするため短縮しています。
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.getDocumentFieldsType("<attachmentSysId>");
gs.info(JSON.stringify(result));
出力:
{"fields_type":{"1ADDLINE2.25":{"pageNumber":2,"type":"text"},"1ADDLINE2.24":{"pageNumber":2,"type":"text"},
"1ADDLINE2.23":{"pageNumber":2,"type":"text"},"1ADDLINE2.22":{"pageNumber":2,"type":"text"},
"1ADDLINE2.11":{"pageNumber":2,"type":"text"},
"Check Box1":{"fieldsDetails":[{"fieldName":"Yes"}],"pageNumber":2,"type":"check_box"},
"4consentDate.6":{"pageNumber":4,"type":"text"},"4consentDate.7":{"pageNumber":4,"type":"text"},
"3SSN.9":{"pageNumber":3,"type":"text"},"3SSN.8":{"pageNumber":3,"type":"text"},"3SSN.7":{"pageNumber":3,"type":"text"},
"pageNumber":2,"type":"check_box"},"Check Box8":{"fieldsDetails":[{"fieldName":"Off"},{"fieldName":"yes"}],
"4planAdminDate.8":{"pageNumber":4,"type":"text"},"4planAdminDate.7":{"pageNumber":4,"type":"text"},
"1FirstName_ID.7":{"pageNumber":2,"type":"text"},
"Check Box9":{"fieldsDetails":[{"fieldName":"Yes"}],"pageNumber":3,"type":"check_box"},
"1LN.1":{"pageNumber":2,"type":"text"},"1LN.2":{"pageNumber":2,"type":"text"},
"Check Box11":{"fieldsDetails":[{"fieldName":"Yes"}],"pageNumber":3,"type":"check_box"},
"1LN.9":{"pageNumber":2,"type":"text"},
"Check Box17":{"fieldsDetails":[{"fieldName":"Yes"}],"pageNumber":3,"type":"check_box"},
"Check Box16":{"fieldsDetails":[{"fieldName":"Yes"}],"pageNumber":3,"type":"check_box"},
"1LN.7":{"pageNumber":2,"type":"text"},"Check Box19":{"fieldsDetails":[{"fieldName":"Yes"}],
"1LN.8":{"pageNumber":2,"type":"text"},"Check Box18":{"fieldsDetails":[{"fieldName":"Yes"}],
"print":{"pageNumber":2,"type":"push_button"},"4planAdministrator.1":{"pageNumber":4,"type":"text"},
"1TaxID.9":{"pageNumber":2,"type":"text"},"4SSN.1":{"pageNumber":3,"type":"text"},"4SSN.2":{"pageNumber":3,"type":"text"},
"Signature.1":{"pageNumber":4,"type":"text"},"1ZIP.2":{"pageNumber":2,"type":"text"},"1ZIP.3":{"pageNumber":2,"type":"text"},
"message":"Request completed successfully.","status":"success"}
PDFGenerationAPI – getFilledDocumentWithSignatureAsBase64(オブジェクト fieldsMap, 文字列 sysId, PdfMergeSignRequestor 要求者, オブジェクト flatten)
編集可能な PDF のフィールドに入力し、画像を作成して、それを Base64 でエンコードされた PDF に変換します。
Base64 エンコードを使用すると、バイナリ文字の構文を損なうことなく、PDF を HTML や JSON などのテキストドキュメント内の文字列として出力できます。
- fillDocumentFields() – 編集可能な PDF のフィールドに入力し、指定されたレコードに添付します。
- fillDocumentFieldsAndFlatten() – 編集可能な PDF のフィールドに入力し、データフィールドをフラット化して、指定されたレコードに添付します。
- fillFieldsAndMergeSignature() – 編集可能な PDF のフィールドに入力し、署名画像を追加して、データフィールドをフラット化し、指定されたレコードに添付します。
| 名前 | タイプ | 説明 |
|---|---|---|
| fieldsMap | オブジェクト | オプション。PDF フィールド名と入力する値によるキー値マップ。getDocumentFields() メソッドを使用して、使用可能なフィールドのリストを取得します。 |
| sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| requestor | PdfMergeSignRequestor | pdfMergeSignRequestor から返された署名入力。 |
| flatten | オブジェクト | オプション。フィールドをフラット化すると、他のユーザーが情報を変更できないようにフィールドをロックできます。キーを「FlattenType」として指定し、フラット化オプションを文字列として指定します。 有効な値:
デフォルト:fully_flatten |
| タイプ | 説明 |
|---|---|
| 文字列 | 成功すると、Base64 形式に変換された PDF が添付ファイルテーブル [sys_attachment] に追加されます。コンテンツには、フィールドと署名が入力された PDF 添付ファイルが反映されます。flatten パラメーターで代替のフラット化オプションが指定されていない場合、フィールドは編集できません。 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 有効な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、PDF 添付ファイル内の 2 つのフィールドをロードし、フィールドをフラット化して PDF を Base64 形式に変換する方法を示しています。
var mymap = new Object();
mymap["City"] = "City value here";
mymap["State"] = "XX";
// create a requestor
var requestor = new sn_pdfgeneratorutils.PdfMergeSignRequestor;
requestor.createRequest("<sys_id>", "tableName", "<tableSysId>", "pdfName");
requestor.addSignatureMapping(6, 40, 50, 188, 44, "<signImgSysId>");
var processedRequestObj = requestor.processRequest();
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.getFilledDocumentWithSignatureAsBase64(mymap, "<attachmentSysId>", processedRequestObj);
gs.info (JSON.stringify(result));
PDFGenerationAPI – getPdfPageSizes(文字列 sysId)
PDF ドキュメントのページサイズを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 成功した場合は各ページのサイズを含むオブジェクト、失敗した場合はエラーメッセージ。 |
| <Object>.pages_size | 操作が成功した場合、各 PDF ページの幅と高さがポイント単位で表示されます。ページ番号は文字列として返され、測定値は数値データタイプとして返されます。 データタイプ:オブジェクト |
| <Object>.message | 成功またはエラーを確認するメッセージ。 可能な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、PDF 添付ファイルの各ページの幅と高さを表示する方法を示しています。
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.getPdfPageSizes ("<attachmentSysId>");
gs.info(JSON.stringify(result));
出力:
{"pages_size":{"1":[612,792],"2":[612,792],"3":[612,792],"4":[612,792],"5":[612,792]},"message":"Request completed successfully.","status":"success"}
PDFGenerationAPI – isDocumentFillable(文字列 sysId)
PDF ドキュメントに編集可能なフィールドが含まれているかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 成功した場合は各ページのサイズを含むオブジェクト、失敗した場合はエラーメッセージ。 |
| <Object>.document_editable | 操作が成功した場合、ドキュメントが編集可能かどうかを示すフラグ。 有効な値:
データタイプ:文字列として指定されたブーリアン値 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 可能な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、PDF ドキュメントのフィールドが編集可能かどうかを判断する方法を示しています。
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.isDocumentFillable("<attachmentSysId>");
gs.info(JSON.stringify(result));
出力:
{"message":"Request completed successfully.","document_editable":"true","status":"success"}
PDFGenerationAPI – redact(オブジェクト inputJson)
指定された矩形座標、検索キーワード、またはその両方に基づいて PDF ドキュメントに編集を適用します。元の PDF の編集済みコピーが添付ファイル [sys_attachment] テーブルに生成されます。
- 墨消し結果には、墨消しを意図していないテキストを上書きする、予期しない白い墨消しテキストブロックが含まれる場合があります。このイベントが発生した場合は、 highlightedSections プロパティまたは PDF Generation Utilities プラグインを使用して、編集するコンテンツを手動で選択できます。詳細については、「Redact data from documents」を参照してください。
- このメソッドは、JBIG2 画像を含む PDF の編集をサポートしていません。
| 名前 | タイプ | 説明 |
|---|---|---|
| 入力 JSON | オブジェクト | 編集する PDF とそのコンテンツを識別します。 |
| inputJson.sysId | 文字列 | 添付ファイル [sys_attachment] テーブル内の PDF の sys_id。 |
| inputJson。ハイライトされたセクション | オブジェクトのアレイ | オブジェクトとして提供される矩形座標のリスト。各座標は、各ページで編集されるコンテンツの場所を表します。 searchedKeywords プロパティを含める場合はオプションです。 |
| inputJson。highlightedSectionsです。ページ番号 | 番号 | 編集用に選択するコンテンツを含む PDF のページ番号。 |
| inputJson。highlightedSectionsです。x | 番号 | PDF の編集矩形の X 軸 (水平位置) (ポイント単位)。PDF ページの左下隅の値は 0 です。例えば、値が 306 の場合、矩形はレターサイズの PDF ページの水平方向の中央にほぼ配置されます。 |
| inputJson。highlightedSectionsです。y | 番号 | PDF の編集矩形の Y 軸 (垂直位置) (ポイント単位)。PDF ページの左下隅の値は 0 です。例えば、値が 396 の場合、矩形はレターサイズの PDF ページの垂直方向の中央にほぼ配置されます。 |
| inputJson。highlightedSectionsです。幅 | 番号 | 墨消し矩形の幅はポイント単位です。この値により、x 軸と y 軸が交差する左下の点から水平方向に四角形のサイズが増加します。 |
| inputJson。highlightedSectionsです。高さ | 番号 | 墨消し矩形の高さ (ポイント単位)。この値により、x 軸と y 軸が交差する左下の点から垂直方向に四角形のサイズが増加します。 |
| inputJson。検索キーワード | アレイ | 編集するテキストを検索するために使用される 1 つ以上の文字列のリスト。マスキング矩形のサイズは、結果としてブロックアウトされるテキストの高さと幅と一致します。 highlightedSections プロパティを含める場合はオプションです。 注: 場合によっては、「 items:」 や 「PDF. 」などの特殊文字や句読点を含むテキスト文字列が編集されないことがあります。または、文字列から文字を削除したり、テキストを削除する領域を強調表示したりすることもできます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 成功した場合は更新された PDF 添付ファイルの sys_id を含むオブジェクト、それ以外の場合はエラーメッセージ。 |
| <Object>.attachment_id | 操作が成功した場合、入力された PDF の sys_id。ファイルは、添付ファイル [sys_attachment] テーブルにリストされます。 データタイプ:文字列 |
| <Object>.message | 成功またはエラーを確認するメッセージ。 可能な値:
データタイプ:文字列 |
| <Object>.status | 操作が成功したかどうかを示すステータス。 可能な値:
データタイプ:文字列 |
次の例は、四角形とキーワードで編集する方法を示しています。編集された PDF では、2 ページで選択した領域がブロックアウトされます。文字列「23」は、見つかったすべてのページで編集されます。
var pdfRequest = {
sysId: 'e4b3ae35fc128210f877789781ea59f3',
highlightedSections: [
{
"pageNumber": 2,
"x": 261.75,
"y": 480,
"width": 21,
"height": 14.25
},
{
"pageNumber": 2,
"x": 249,
"y": 390.75,
"width": 63.75,
"height": 15.75
}
// Add more coordinates as needed
],
searchedKeywords: ['23']
};
// Convert the JSON object to a string
var jsonRequest = JSON.stringify(pdfRequest);
gs.info('JSON Request: ' + jsonRequest + '\n');
var PDFRedaction = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = PDFRedaction.redact(jsonRequest);
gs.info(JSON.stringify(result));
出力:
JSON Request: {"sysId":"e4b3ae35fc128210f877789781ea59f3","highlightedSections":[{"pageNumber":2,"x":261.75,"y":480,"width":21,"height":14.25},{"pageNumber":2,"x":249,"y":390.75,"width":63.75,"height":15.75}],"searchedKeywords":[23]}
{"attachment_id":"1744ae35fc128210f877789781ea59fc","message":"Request completed successfully.","status":"success"}