---
sourceDocument: Xanadu API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ko-KR

ft:publication_title :

    - Xanadu API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# PDFGenerationAPI - 범위가 지정됨, 전역

# PDFGenerationAPI - 범위가 지정됨, 전역 {#ariaid-title1}

* 릴리스 버전: Xanadu
* 
* 업데이트 날짜 2024년 08월 01일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 57분

PDFGenerationAPI는 PDF 변환 및 PDF 필드 처리를 지원합니다.
이 API는 PDF 생성 유틸리티 플러그인(com.snc.apppdfgenerator)의 ServiceNow 일부이며 `sn_pdfgeneratorutils` 네임스페이스 내에서 제공됩니다. 플러그인은 기본적으로 활성화되어 있습니다.  
이러한 방법은 카탈로그 항목이 아닌 항목에서 만든 문서에도 사용할 수 있습니다. 이 클래스의 메서드를 사용하면 다음 작업을 수행할 수 있습니다.

* HTML 문자열에서 PDF를 동적으로 작성하고 레코드에 첨부
  * [PDFGenerationAPI -- convertToPDF(문자열 html, 문자열 targetTable, 문자열 targetTableSysId, 문자열 pdfName, 문자열 fontFamilySysId, 개체 documentConfiguration)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-convertToPDF_S_S_S_S "HTML 문자열을 PDF 문서로 변환합니다.")
  * [PDFGenerationAPI -- convertToPDFWithHeaderFooter(문자열 html, 문자열 targetTable, 문자열 targetTableSysId, 문자열 pdfName, 개체 headerFooterInfo, 문자열 fontFamilySysId, 개체 documentConfiguration)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-convertToPDFWithHdrFtr_S_S_S_S_O "HTML 문자열을 머리글과 바닥글 내용이 있는 PDF로 변환합니다.")
  {#PDFGenerationAPIBothAPI__ul_ocm_vpr_tbc}
* PDF의 필드 채우기
  * [PDFGenerationAPI -- fillDocumentFieldsAndFlatten(개체 fieldsMap, 문자열 sysId, 문자열 tableName, 문자열 tableSysId, 문자열 pdfName, 개체 평면화)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocFieldsFlatten_O_S_S_S_S_O "편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.")
  * [PDFGenerationAPI -- fillDocumentFields(개체 fieldsMap, 문자열 sysId, 문자열 tableName, 문자열 tableSysId, 문자열 pdfName)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocumentFields_O_S_S_S_S "편집 가능한 PDF의 필드를 채우고 제공된 레코드에 첨부합니다.")
  * [PDFGenerationAPI -- isDocumentFillable(문자열 sysId)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-isDocumentFillable_S "PDF 문서에 편집 가능한 필드가 포함되어 있는지 확인합니다.")
  {#PDFGenerationAPIBothAPI__ul_kvf_spr_tbc}
* PDF 서명
  * [PDFGenerationAPI -- fillFieldsAndMergeSignature(Object fieldsMap, String sysId, String tableName, String tableSysId, String pdfName, PdfMergeSignRequestor requestor, Object flatten)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillFieldsMergeSig_O_S_S_S_S_O_O "편집 가능한 PDF의 필드를 채우고, 서명 이미지를 추가하고, 데이터 필드를 평면화하고, 제공된 레코드에 첨부합니다.")
  * [PDFGenerationAPI -- getFilledDocumentWithSignatureAsBase64(개체 fieldsMap, 문자열 sysId, PdfMergeSignRequestor 요청자, 개체 평면화)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getFilDocWithSigAsBase64_O_S_O_O "편집 가능한 PDF의 필드를 채우고, 이미지를 만들고, Base64로 인코딩된 PDF로 변환합니다.")
  {#PDFGenerationAPIBothAPI__ul_xzr_frr_tbc}
* Restrict editing editing filled fields as flattened or partially flattened(채워진 필드를 평면화 또는 부분적으로 평면화로 편집 제한) -- [PDFGenerationAPI -- fillDocumentFieldsAndFlatten(개체 fieldsMap, 문자열 sysId, 문자열 tableName, 문자열 tableSysId, 문자열 pdfName, 개체 평면화)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocFieldsFlatten_O_S_S_S_S_O "편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.")
* PDF 페이지 크기 및 필드 데이터 검색
  * [PDFGenerationAPI -- getPdfPageSizes(문자열 sysId)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getPdfPageSizes_S "PDF 문서의 페이지 크기를 가져옵니다.")
  * [PDFGenerationAPI -- getDocumentFieldsType(문자열 sysId)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFieldsType_S "PDF 문서에서 편집 가능한 필드 세트의 필드 유형을 가져옵니다.")
  * [PDFGenerationAPI -- getDocumentFields(문자열 sysId)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFields_S "PDF 문서에서 편집 가능한 필드 목록을 가져옵니다. 검사할 파일을 수동으로 열지 않고도 편집 가능한 PDF 필드를 나열할 수 있습니다.")
  {#PDFGenerationAPIBothAPI__ul_e2p_ypr_tbc}
* PDF에서 정보 수정 -- [PDFGenerationAPI -- 수정(객체 inputJson)](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-redact_O "지정된 사각형 좌표, 검색 키워드 또는 둘 다를 기준으로 PDF 문서에 수정 작업을 적용합니다. 원본 PDF의 수정된 사본이 첨부 파일 [sys_attachment] 테이블에 생성됩니다.")
{#PDFGenerationAPIBothAPI__ul_csg_2vl_l4b}  
관련 API:

* [PdfMergeSignRequestor](https://servicenow-prod.fluidtopics.net/xAAG4wqO_VaAVsY2CiZs4A#PdfMergeSignRequestorBothAPI "PdfMergeSignRequestor API는 PDF 문서에 서명을 나타내는 이미지를 추가하는 메서드를 제공합니다.")
* [SVGToPDFConversionAPI](https://servicenow-prod.fluidtopics.net/PHu90HGvxoZOZg0X5DlySw#SVGToPDFConversionAPBothAPI "SVGToPDFConversionAPI는 SVG를 PDF에 추가하고 SVG를 PDF로 변환할 수 있는 메서드를 제공합니다.")

## PDFGenerationAPI -- PDFGenerationAPI() {#ariaid-title2}

새 PDFGenerationAPI 개체를 인스턴스화합니다.
{#P-PDFGenerationAPI__table_twm_hjk_34b__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 없음 |   |   |
[표 1. 매개변수]

{#P-PDFGenerationAPI__table_twm_hjk_34b}  
다음 예제에서는 PDFGenerationAPI 개체를 만드는 방법을 보여 줍니다.

    var v = new sn_pdfgeneratorutils.PDFGenerationAPI;

## PDFGenerationAPI -- convertToPDF(문자열 html, 문자열 targetTable, 문자열 targetTableSysId, 문자열 pdfName, 문자열 fontFamilySysId, 개체 documentConfiguration) {#ariaid-title3}

HTML 문자열을 PDF 문서로 변환합니다.
이 방법은 A4 -- 595 × 842포인트의 페이지 크기를 사용하여 PDF를 만듭니다. 이 크기를 초과하면 컨텐츠가 잘립니다.

페이지 크기, 방향 및 페이지 번호와 같은 추가 설정을 사용하여 PDF를 생성하려면 [convertToPDFWithHeaderFooter()를](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-convertToPDFWithHdrFtr_S_S_S_S_O "HTML 문자열을 머리글과 바닥글 내용이 있는 PDF로 변환합니다.") 사용합니다.
{#P-convertToPDF_S_S_S_S__table_sj4_p5j_34b__entry__3}{#P-convertToPDF_S_S_S_S__api_pdfgen_parm_fill_tableN_desc}

| 이름 | 유형 | 설명 |
|-|-|-|
| 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 | 객체 | 옵션입니다. 목차 구성 및 페이지 번호 구성을 포함하는 객체입니다. {​ "toc_config" : "String",​ "page_number_config": "String"​ }​ |
| documentConfiguration.toc_config | 문자열 | 옵션입니다. PDF에 사용할 목차 구성의 Sys_id입니다. 이 sys_id은 목차 구성 \[doc_toc_config\] 테이블에서 가져온 것입니다. 기본값 : 없음 |
| documentConfiguration.page_number_config | 문자열 | 옵션입니다. PDF에 사용할 페이지 번호 구성의 Sys_id입니다. 이 sys_id은 페이지 번호 구성 \[doc_page_number_config\] 테이블에서 가져온 것입니다. 기본값 : 없음 |
[표 2. 매개변수]

{#P-convertToPDF_S_S_S_S__table_sj4_p5j_34b} {#P-convertToPDF_S_S_S_S__table_tj4_p5j_34b__entry__2}{#P-convertToPDF_S_S_S_S__row_pdfgen_ret_msgCnv}

| 유형 | 설명 |
|-|-|
| 객체 | 변환에 성공하면 PDF 첨부 파일의 sys_id 포함하는 객체이고, 그렇지 않으면 오류 메시지입니다. { "attachment_id": "String", "message": "String", "request_id": "String", "status": "String" } |
| \<Object\>.​attachment_id | HTML 변환에 성공하면 변환 및 첨부된 PDF를 sys_id. 파일이 첨부 파일 \[sys_attachment\] 테이블에 나열됩니다. 데이터 유형: 문자열 |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 가능한 값: * 변환하지 못했습니다. -- 작성된 PDF가 없습니다. 제공된 값이 정확한지 확인합니다. * 변환에 성공했습니다. -- HTML이 PDF로 성공적으로 변환되었습니다. * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다. * 지정된 대상 기록 \[\<tableName\> - \<targetTableSysId\>\]이(가) 존재하지 않습니다. -- 제공된 테이블에 대상 테이블 sys_id이 없습니다. 기록에 올바른 테이블 이름을 포함해야 합니다. * 작성할 pdf와 관련된 양식이 없습니다. attachmentSysId: \<sys_id\> * 지정된 이름의 편집 가능한 필드가 없습니다. 확인하고 다시 시도하십시오. 필드 이름: \<필드 이름\> * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-convertToPDF_S_S_S_S__ul_zv2_wq3_k4b} 데이터 유형: 문자열 |
| \<Object\>.request_id | 변경 생성자 요청 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-convertToPDF_S_S_S_S__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 3. 반환]

{#P-convertToPDF_S_S_S_S__table_tj4_p5j_34b}  
다음 예는 HTML을 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) {#ariaid-title4}

HTML 문자열을 머리글과 바닥글 내용이 있는 PDF로 변환합니다.
이 방법을 사용하여 페이지 설정으로 PDF를 생성합니다.

* 머리글 및 바닥글 정보
* 여백 크기
* 방향
* 열거형
* 페이지 크기
{#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_iqx_3xc_l4b}
{#P-convertToPDFWithHdrFtr_S_S_S_S_O__table_hmj_q5j_34b__entry__3}{#P-convertToPDFWithHdrFtr_S_S_S_S_O__api_pdfgen_parm_fill_tableN_desc}

| 이름 | 유형 | 설명 |
|-|-|-|
| html | 문자열 | PDF 문서로 변환하려는 HTML입니다. |
| targetTable | 문자열 | 변환된 PDF를 첨부할 테이블의 이름입니다. |
| targetTableSysId | 문자열 | 변환된 PDF를 첨부할 기록의 Sys_id입니다. |
| pdfName | 문자열 | PDF에 제공할 이름입니다. 기본값: 첨부 파일 \[sys_attachment\] 테이블에 있는 PDF의 Sys_id. |
| headerFooterInfo | 객체 | PDF 머리글 및 바닥글 상세 정보를 정의합니다. { "FooterImageAlignment": "String", "FooterImageAttachmentId": "String", "FooterImageHeight": "String", "FooterText": "String", "FooterTextAlignment": "String", "GeneratePageNumber": "String", "HeaderImageAlignment": "String", "HeaderImageAttachmentId": "String", "HeaderImageHeight": "String", "LeftOrRightMargin": "String", "PageOrientation": "String", "PageSize": "String", "TopOrBottomMargin": "String" } |
| headerFooterInfo입니다.바닥글 이미지 정렬 | 문자열 | 바닥글의 이미지 위치를 설정합니다. 유효한 값은 다음과 같습니다. * BOTTOM_CENTER: 바닥글의 하단 중앙에 이미지를 배치합니다. * BOTTOM_LEFT: 바닥글의 왼쪽 하단 영역에 이미지를 배치합니다. * BOTTOM_RIGHT: 바닥글의 오른쪽 하단 영역에 이미지를 배치합니다. * TOP_CENTER: 바닥글의 상단 중앙에 이미지를 배치합니다. * TOP_LEFT: 바닥글의 왼쪽 상단 영역에 이미지를 배치합니다. * TOP_RIGHT: 바닥글의 오른쪽 상단 영역에 이미지를 배치합니다. {#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_ezt_f4c_l4b} |
| headerFooterInfo입니다.바닥글 이미지 첨부 파일 ID | 문자열 | 첨부 파일 \[sys_attachment\] 테이블의 바닥글 이미지 Sys_id입니다. 파일 형식이 인스턴스에서 지원되는지 확인하려면 시스템 속성\> 보안 으로 이동하여 첨부할 수 있는 파일 확장명 목록(쉼표로 구분) 필드에 나열되어 있는지 확인합니다. |
| headerFooterInfo입니다.바닥글 이미지 높이 | 문자열 | 바닥글 이미지의 높이입니다. 기본값: 50포인트 |
| headerFooterInfo입니다.바닥글 텍스트 | 문자열 | 각 PDF 페이지의 맨 아래에 배치할 바닥글 텍스트입니다. |
| headerFooterInfo입니다.바닥글 텍스트 정렬 | 문자열 | 바닥글의 텍스트 위치를 설정합니다. 이 값이 에 headerFooterInfo.FooterImageAlignment제공된 영역과 일치하지 않거나 충돌하지 않는지 확인하십시오. 유효한 값은 다음과 같습니다. * BOTTOM_CENTER: 바닥글의 하단 중앙에 텍스트를 배치합니다. * BOTTOM_LEFT: 바닥글의 왼쪽 하단 영역에 텍스트를 배치합니다. * BOTTOM_RIGHT: 바닥글의 오른쪽 하단 영역에 텍스트를 배치합니다. * TOP_CENTER: 바닥글의 상단 가운데에 텍스트를 배치합니다. * TOP_LEFT: 바닥글의 왼쪽 상단 영역에 텍스트를 배치합니다. * TOP_RIGHT: 바닥글의 오른쪽 상단 영역에 텍스트를 배치합니다. {#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_lfd_mdd_l4b} |
| headerFooterInfo입니다.GeneratePageNumber | 문자열 | PDF 페이지 번호를 생성할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 페이지 번호를 생성합니다. * false: 페이지 번호를 생성하지 않습니다. {#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_zlg_4cp_k4b} 기본값: true |
| headerFooterInfo입니다.헤더 이미지 정렬 | 문자열 | 헤더에서 이미지 위치를 설정합니다. 유효한 값은 다음과 같습니다. * center: 헤더의 가운데에 이미지를 배치합니다. * left: 헤더의 왼쪽에 이미지를 배치합니다. * right: 헤더의 오른쪽에 이미지를 배치합니다. {#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_qjq_npc_l4b} |
| headerFooterInfo입니다.헤더 이미지 첨부 파일 ID | 문자열 | 첨부 파일 \[sys_attachment\] 테이블의 헤더 이미지 Sys_id입니다. 파일 형식이 인스턴스에서 지원되는지 확인하려면 시스템 속성\> 보안 으로 이동하여 첨부할 수 있는 파일 확장명 목록(쉼표로 구분) 필드에 나열되어 있는지 확인합니다. |
| headerFooterInfo입니다.헤더 이미지 높이 | 문자열 | 헤더 이미지의 높이입니다. 기본값: 50포인트 |
| headerFooterInfo입니다.왼쪽 또는 오른쪽 여백 | 문자열 | 왼쪽 및 오른쪽 여백의 크기입니다. 페이지의 왼쪽 또는 오른쪽에 배치하면 머리글/바닥글 세부 정보가 이 영역 내에 배치됩니다. 기본값: 36포인트 |
| headerFooterInfo입니다.페이지 오리엔테이션 | 문자열 | 페이지 방향입니다. 유효한 값은 다음과 같습니다. * 초상 * 풍경화 {#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_lyr_qyc_l4b} 기본값: 세로 |
| headerFooterInfo입니다.페이지 크기 | 문자열 | 문서 페이지 크기입니다. 유효한 값은 다음과 같습니다. * A4 -- 595점 × 842점 * 편지 -- 612점 × 792점 * 원장 -- 792 x 1224 포인트 {#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_dml_q2p_k4b} 페이지 크기를 초과하면 컨텐츠가 잘립니다. |
| headerFooterInfo입니다.TopOrBottomMargin (위쪽 또는 아래쪽 여백) | 문자열 | 위쪽 및 아래쪽 여백의 크기입니다. 머리글 및 바닥글 상세 정보는 이 영역 내에 배치됩니다. 기본값: 72포인트 |
| fontFamilySysId 님 | 문자열 | 옵션입니다. PDF에 사용할 글꼴 모음의 Sys_id입니다. 이 sys_id PDF 생성 글꼴 집합\[sys_pdf_generation_font_family\] 테이블에 있습니다. 기본값 : 없음 |
| documentConfiguration | 객체 | 옵션입니다. 목차 구성 및 페이지 번호 구성을 포함하는 객체입니다. {​ "toc_config" : "String",​ "page_number_config": "String"​ }​ |
| documentConfiguration.toc_config | 문자열 | 옵션입니다. PDF에 사용할 목차 구성의 Sys_id입니다. 이 sys_id은 목차 구성 \[doc_toc_config\] 테이블에서 가져온 것입니다. 기본값 : 없음 |
| documentConfiguration.page_number_config | 문자열 | 옵션입니다. PDF에 사용할 페이지 번호 구성의 Sys_id입니다. 이 sys_id은 페이지 번호 구성 \[doc_page_number_config\] 테이블에서 가져온 것입니다. 기본값 : 없음 |
[표 4. 매개변수]

{#P-convertToPDFWithHdrFtr_S_S_S_S_O__table_hmj_q5j_34b} {#P-convertToPDFWithHdrFtr_S_S_S_S_O__table_tj4_p5j_34b__entry__2}{#P-convertToPDFWithHdrFtr_S_S_S_S_O__row_pdfgen_ret_msgCnv}

| 유형 | 설명 |
|-|-|
| 객체 | 변환에 성공하면 PDF 첨부 파일의 sys_id 포함하는 객체이고, 그렇지 않으면 오류 메시지입니다. { "attachment_id": "String", "message": "String", "request_id": "String", "status": "String" } |
| \<Object\>.​attachment_id | HTML 변환에 성공하면 변환 및 첨부된 PDF를 sys_id. 파일이 첨부 파일 \[sys_attachment\] 테이블에 나열됩니다. 데이터 유형: 문자열 |
| \<Object\>.​메시지 | 성공 또는 오류를 확인하는 메시지입니다. 가능한 값: * 변환하지 못했습니다. -- 작성된 PDF가 없습니다. 제공된 값이 정확한지 확인합니다. * 변환에 성공했습니다. -- HTML이 PDF로 성공적으로 변환되었습니다. * 바닥글 이미지 정렬 및 텍스트 정렬은 동일한 정렬로 동일한 영역에 있을 수 없음: \<footerImageAlignment value\> -- 및 headerFooterInfo.FooterTextAlignment 값이 동일한 영역에 있지 않은지 확인합니다headerFooterInfo.FooterImageAlignment. * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다. * 지정된 대상 기록 \[\<tableName\> - \<targetTableSysId\>\]이(가) 존재하지 않습니다. -- 제공된 테이블에 대상 테이블 sys_id이 없습니다. 기록에 올바른 테이블 이름을 포함해야 합니다. * 잘못된 바닥글 이미지 정렬: \<invalid_option\>가 제공되었습니다. -- 속성에 headerFooterInfo.FooterImageAlignment 유효한 옵션을 제공합니다. * 잘못된 바닥글 텍스트 정렬: " + \<invalid_option\> + "가 제공되었습니다. -- 속성에 headerFooterInfo.footerTextAlignment 유효한 옵션을 제공합니다. * 작성할 pdf와 관련된 양식이 없습니다. attachmentSysId: \<sys_id\> * 지정된 이름의 편집 가능한 필드가 없습니다. 확인하고 다시 시도하십시오. 필드 이름: \<필드 이름\> * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 바닥글 이미지를 가져올 수 없습니다. sysId: + \<제공된 값\> -- 제공된 headerFooterInfo.footerImageId sys_id이 정확한지 확인합니다. * 헤더 이미지를 가져올 수 없습니다. sysId: + \<제공된 값\> -- 제공된 headerFooterInfo.headerImageId sys_id이 정확한지 확인합니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_zv2_wq3_k4b} 데이터 유형: 문자열 |
| \<Object\>.request_id | 변경 생성자 요청 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-convertToPDFWithHdrFtr_S_S_S_S_O__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 5. 반환]

{#P-convertToPDFWithHdrFtr_S_S_S_S_O__table_tj4_p5j_34b}  
다음 예시는 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) {#ariaid-title5}

편집 가능한 PDF의 필드를 채우고 제공된 레코드에 첨부합니다.
다음 방법을 사용하여 PDF에 채울 수 있는지 확인하고 필드 정보를 가져올 수 있습니다.

* [isDocumentFillable()을 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-isDocumentFillable_S "PDF 문서에 편집 가능한 필드가 포함되어 있는지 확인합니다.")
* [getDocumentFields()를 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFields_S "PDF 문서에서 편집 가능한 필드 목록을 가져옵니다. 검사할 파일을 수동으로 열지 않고도 편집 가능한 PDF 필드를 나열할 수 있습니다.")
* [getDocumentFieldsType()을 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFieldsType_S "PDF 문서에서 편집 가능한 필드 세트의 필드 유형을 가져옵니다.")
{#P-fillDocumentFields_O_S_S_S_S__ul_e1m_kpj_l4b}  
PDFGenerationAPI는 다양한 옵션이 있는 추가 채우기 메서드를 제공합니다.

* [fillDocumentFieldsAndFlatten()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocFieldsFlatten_O_S_S_S_S_O "편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.
* [fillFieldsAndMergeSignature()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillFieldsMergeSig_O_S_S_S_S_O_O "편집 가능한 PDF의 필드를 채우고, 서명 이미지를 추가하고, 데이터 필드를 평면화하고, 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고, 서명 이미지를 추가하고, 데이터 필드를 평면화하고, 제공된 레코드에 첨부합니다.
* [getFilledDocumentWithSignatureAsBase64()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getFilDocWithSigAsBase64_O_S_O_O "편집 가능한 PDF의 필드를 채우고, 이미지를 만들고, Base64로 인코딩된 PDF로 변환합니다.") -- 편집 가능한 PDF의 필드를 채우고, 이미지를 만들고, Base64로 인코딩된 PDF로 변환합니다.
{#P-fillDocumentFields_O_S_S_S_S__ul_lyz_lft_l4b}
{#P-fillDocumentFields_O_S_S_S_S__table_ohl_lzj_34b__entry__3}{#P-fillDocumentFields_O_S_S_S_S__ph_api_pdfgen_parm_attIDesc}{#P-fillDocumentFields_O_S_S_S_S__entry-api-pdfgen-tblName}{#P-fillDocumentFields_O_S_S_S_S__entry-api-pdfgen-tblID}

| 이름 | 유형 | 설명 |
|-|-|-|
| 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. |
[표 6. 매개변수]

{#P-fillDocumentFields_O_S_S_S_S__table_ohl_lzj_34b} {#P-fillDocumentFields_O_S_S_S_S__table_phl_lzj_34b__entry__2}{#P-fillDocumentFields_O_S_S_S_S__desc-fill-only}{#P-fillDocumentFields_O_S_S_S_S__desc_pdfgen_ret_attID_Fill}

| 유형 | 설명 |
|-|-|
| 객체 | 성공한 경우 업데이트된 PDF 첨부 파일의 sys_id 포함하는 객체입니다. 그렇지 않으면 오류 메시지가 표시됩니다. { "attachment_id": "String", "message": "String", "status": "String" } |
| \<Object\>.​attachment_id | 작업이 성공하면 채워진 PDF를 sys_id. 파일이 첨부 파일 \[sys_attachment\] 테이블에 나열됩니다. 데이터 유형: 문자열 |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 유효한 값은 다음과 같습니다. * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다. * 지정된 대상 기록 \[\<tableName\> - \<targetTableSysId\>\]이(가) 존재하지 않습니다. -- 제공된 테이블에 대상 테이블 sys_id이 없습니다. 기록에 올바른 테이블 이름을 포함해야 합니다. * 작성할 pdf와 관련된 양식이 없습니다. attachmentSysId: \<sys_id\> * 지정된 이름의 편집 가능한 필드가 없습니다. 확인하고 다시 시도하십시오. 필드 이름: \<필드 이름\> * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-fillDocumentFields_O_S_S_S_S__ul_eln_fwk_l4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-fillDocumentFields_O_S_S_S_S__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 7. 반환]

{#P-fillDocumentFields_O_S_S_S_S__table_phl_lzj_34b}  
다음 예제에서는 편집 가능한 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, 개체 평면화) {#ariaid-title6}

편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.
다음 방법을 사용하여 PDF에 채울 수 있는지 확인하고 필드 정보를 가져올 수 있습니다.

* [isDocumentFillable()을 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-isDocumentFillable_S "PDF 문서에 편집 가능한 필드가 포함되어 있는지 확인합니다.")
* [getDocumentFields()를 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFields_S "PDF 문서에서 편집 가능한 필드 목록을 가져옵니다. 검사할 파일을 수동으로 열지 않고도 편집 가능한 PDF 필드를 나열할 수 있습니다.")
* [getDocumentFieldsType()을 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFieldsType_S "PDF 문서에서 편집 가능한 필드 세트의 필드 유형을 가져옵니다.")
{#P-fillDocFieldsFlatten_O_S_S_S_S_O__ul_e1m_kpj_l4b}  
PDFGenerationAPI는 다양한 옵션이 있는 추가 채우기 메서드를 제공합니다.

* [fillDocumentFields()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocumentFields_O_S_S_S_S "편집 가능한 PDF의 필드를 채우고 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고 제공된 레코드에 첨부합니다.
* [fillFieldsAndMergeSignature()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillFieldsMergeSig_O_S_S_S_S_O_O "편집 가능한 PDF의 필드를 채우고, 서명 이미지를 추가하고, 데이터 필드를 평면화하고, 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고, 서명 이미지를 추가하고, 데이터 필드를 평면화하고, 제공된 레코드에 첨부합니다.
* [getFilledDocumentWithSignatureAsBase64()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getFilDocWithSigAsBase64_O_S_O_O "편집 가능한 PDF의 필드를 채우고, 이미지를 만들고, Base64로 인코딩된 PDF로 변환합니다.") -- 편집 가능한 PDF의 필드를 채우고, 이미지를 만들고, Base64로 인코딩된 PDF로 변환합니다.
{#P-fillDocFieldsFlatten_O_S_S_S_S_O__ul_lyz_lft_l4b}
{#P-fillDocFieldsFlatten_O_S_S_S_S_O__table_xp4_thk_34b__entry__3}{#P-fillDocFieldsFlatten_O_S_S_S_S_O__ph_api_pdfgen_parm_attIDesc}{#P-fillDocFieldsFlatten_O_S_S_S_S_O__entry-api-pdfgen-tblName}{#P-fillDocFieldsFlatten_O_S_S_S_S_O__entry-api-pdfgen-tblID}

| 이름 | 유형 | 설명 |
|-|-|-|
| 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. |
| 평평 | 객체 | 옵션입니다. 필드를 평면화하면 다른 사용자가 정보를 변경할 수 없도록 필드를 잠글 수 있습니다. 키를 "FlattenType"으로 지정하고 평면화 옵션을 문자열로 제공합니다. 유효한 값은 다음과 같습니다. * donot_flatten - 필드를 평면화하지 마십시오. * partially_flatten - 수정된 필드만 평면화합니다. * fully_flatten - 모든 필드를 평면화합니다. {#P-fillDocFieldsFlatten_O_S_S_S_S_O__ul_mwn_5wc_k4b} 기본값: fully_flatten { "FlattenType": "String" } |
[표 8. 매개변수]

{#P-fillDocFieldsFlatten_O_S_S_S_S_O__table_xp4_thk_34b} {#P-fillDocFieldsFlatten_O_S_S_S_S_O__table_phl_lzj_34b__entry__2}{#P-fillDocFieldsFlatten_O_S_S_S_S_O__desc-fill-only}{#P-fillDocFieldsFlatten_O_S_S_S_S_O__desc_pdfgen_ret_attID_Fill}

| 유형 | 설명 |
|-|-|
| 객체 | 성공한 경우 업데이트된 PDF 첨부 파일의 sys_id 포함하는 객체입니다. 그렇지 않으면 오류 메시지가 표시됩니다. { "attachment_id": "String", "message": "String", "status": "String" } |
| \<Object\>.​attachment_id | 작업이 성공하면 채워진 PDF를 sys_id. 파일이 첨부 파일 \[sys_attachment\] 테이블에 나열됩니다. 데이터 유형: 문자열 |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 유효한 값은 다음과 같습니다. * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다. * 지정된 대상 기록 \[\<tableName\> - \<targetTableSysId\>\]이(가) 존재하지 않습니다. -- 제공된 테이블에 대상 테이블 sys_id이 없습니다. 기록에 올바른 테이블 이름을 포함해야 합니다. * 작성할 pdf와 관련된 양식이 없습니다. attachmentSysId: \<sys_id\> * 지정된 이름의 편집 가능한 필드가 없습니다. 확인하고 다시 시도하십시오. 필드 이름: \<필드 이름\> * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-fillDocFieldsFlatten_O_S_S_S_S_O__ul_eln_fwk_l4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-fillDocFieldsFlatten_O_S_S_S_S_O__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 9. 반환]

{#P-fillDocFieldsFlatten_O_S_S_S_S_O__table_phl_lzj_34b}  
다음 예제에서는 필드를 채우고 편집 가능한 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(Object fieldsMap, String sysId, String tableName, String tableSysId, String pdfName, PdfMergeSignRequestor requestor, Object flatten) {#ariaid-title7}

편집 가능한 PDF의 필드를 채우고, 서명 이미지를 추가하고, 데이터 필드를 평면화하고, 제공된 레코드에 첨부합니다.
다음 방법을 사용하여 PDF에 채울 수 있는지 확인하고 필드 정보를 가져올 수 있습니다.

* [isDocumentFillable()을 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-isDocumentFillable_S "PDF 문서에 편집 가능한 필드가 포함되어 있는지 확인합니다.")
* [getDocumentFields()를 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFields_S "PDF 문서에서 편집 가능한 필드 목록을 가져옵니다. 검사할 파일을 수동으로 열지 않고도 편집 가능한 PDF 필드를 나열할 수 있습니다.")
* [getDocumentFieldsType()을 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFieldsType_S "PDF 문서에서 편집 가능한 필드 세트의 필드 유형을 가져옵니다.")
{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__ul_e1m_kpj_l4b}  
PDFGenerationAPI는 다양한 옵션이 있는 추가 채우기 메서드를 제공합니다.

* [fillDocumentFields()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocumentFields_O_S_S_S_S "편집 가능한 PDF의 필드를 채우고 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고 제공된 레코드에 첨부합니다.
* [fillDocumentFieldsAndFlatten()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocFieldsFlatten_O_S_S_S_S_O "편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.
* [getFilledDocumentWithSignatureAsBase64()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getFilDocWithSigAsBase64_O_S_O_O "편집 가능한 PDF의 필드를 채우고, 이미지를 만들고, Base64로 인코딩된 PDF로 변환합니다.") -- 편집 가능한 PDF의 필드를 채우고, 이미지를 만들고, Base64로 인코딩된 PDF로 변환합니다.
{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__ul_lyz_lft_l4b}
{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__table_xp4_thk_34b__entry__3}{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__ph_api_pdfgen_parm_attIDesc}{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__entry-api-pdfgen-tblName}{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__entry-api-pdfgen-tblID}

| 이름 | 유형 | 설명 |
|-|-|-|
| 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. |
| 요청자 | [PdfMergeSignRequestor](https://servicenow-prod.fluidtopics.net/xAAG4wqO_VaAVsY2CiZs4A#PdfMergeSignRequestorBothAPI "PdfMergeSignRequestor API는 PDF 문서에 서명을 나타내는 이미지를 추가하는 메서드를 제공합니다.") | pdfMergeSignRequestor에서 반환된 서명 입력입니다. |
| 평평 | 객체 | 옵션입니다. 필드를 평면화하면 다른 사용자가 정보를 변경할 수 없도록 필드를 잠글 수 있습니다. 키를 "FlattenType"으로 지정하고 평면화 옵션을 문자열로 제공합니다. 유효한 값은 다음과 같습니다. * donot_flatten - 필드를 평면화하지 마십시오. * partially_flatten - 수정된 필드만 평면화합니다. * fully_flatten - 모든 필드를 평면화합니다. {#P-fillFieldsMergeSig_O_S_S_S_S_O_O__ul_mwn_5wc_k4b} 기본값: fully_flatten { "FlattenType": "String" } |
[표 10. 매개변수]

{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__table_xp4_thk_34b} {#P-fillFieldsMergeSig_O_S_S_S_S_O_O__table_anm_5hk_34b__entry__2}{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__desc-fill-only}{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__desc_pdfgen_ret_attID_Fill}

| 유형 | 설명 |
|-|-|
| 객체 | 성공한 경우 업데이트된 PDF 첨부 파일의 sys_id 포함하는 객체입니다. 그렇지 않으면 오류 메시지가 표시됩니다. { "attachment_id": "String", "message": "String", "status": "String" } |
| \<Object\>.​attachment_id | 작업이 성공하면 채워진 PDF를 sys_id. 파일이 첨부 파일 \[sys_attachment\] 테이블에 나열됩니다. 데이터 유형: 문자열 |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 유효한 값은 다음과 같습니다. * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다. * 지정된 대상 기록 \[\<tableName\> - \<targetTableSysId\>\]이(가) 존재하지 않습니다. -- 제공된 테이블에 대상 테이블 sys_id이 없습니다. 기록에 올바른 테이블 이름을 포함해야 합니다. * 작성할 pdf와 관련된 양식이 없습니다. attachmentSysId: \<sys_id\> * 지정된 이름의 편집 가능한 필드가 없습니다. 확인하고 다시 시도하십시오. 필드 이름: \<필드 이름\> * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-fillFieldsMergeSig_O_S_S_S_S_O_O__ul_eln_fwk_l4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-fillFieldsMergeSig_O_S_S_S_S_O_O__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 11. 반환]

{#P-fillFieldsMergeSig_O_S_S_S_S_O_O__table_anm_5hk_34b}  
다음 예제에서는 필드를 완전히 평면화하기 위해 기본 설정으로 서명으로 필드를 채우는 방법을 보여 줍니다.

    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) {#ariaid-title8}

PDF 문서에서 편집 가능한 필드 목록을 가져옵니다. 검사할 파일을 수동으로 열지 않고도 편집 가능한 PDF 필드를 나열할 수 있습니다.
{#P-getDocumentFields_S__table_hmj_q5j_34b__entry__3}{#P-getDocumentFields_S__ph_api_pdfgen_parm_attIDesc}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 첨부 파일 \[sys_attachment\] 테이블에 있는 PDF의 Sys_id입니다. |
[표 12. 매개변수]

{#P-getDocumentFields_S__table_hmj_q5j_34b} {#P-getDocumentFields_S__table_v1y_g3k_34b__entry__2}

| 유형 | 설명 |
|-|-|
| 객체 | 서명된 PDF의 ID를 포함하는 객체입니다. 그렇지 않으면 오류 메시지가 표시됩니다. { "attachment_id": "String", "message": "String", "status": "String" } |
| \<Object\>.필드 | 요청이 성공하면 PDF에 각 필드의 이름이 포함된 목록이 표시됩니다. 데이터 형식: 문자열 배열 "fields": ["field_name"] |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 가능한 값: * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다. * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-getDocumentFields_S__ul_qlv_5cv_j4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-getDocumentFields_S__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 13. 반환]

{#P-getDocumentFields_S__table_v1y_g3k_34b}  
다음 예는 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) {#ariaid-title9}

PDF 문서에서 편집 가능한 필드 세트의 필드 유형을 가져옵니다.
{#P-getDocumentFieldsType_S__table_hmj_q5j_34b__entry__3}{#P-getDocumentFieldsType_S__ph_api_pdfgen_parm_attIDesc}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 첨부 파일 \[sys_attachment\] 테이블에 있는 PDF의 Sys_id입니다. |
[표 14. 매개변수]

{#P-getDocumentFieldsType_S__table_hmj_q5j_34b} {#P-getDocumentFieldsType_S__table_jxx_whk_34b__entry__2}{#P-getDocumentFieldsType_S__api_pdfgen_ret_msg}

| 유형 | 설명 |
|-|-|
| 객체 | 성공하면 각 PDF 필드 유형을 포함하는 객체이고, 그렇지 않으면 오류 메시지입니다. { "fields_type": {Object}, "message": "String", "status": "String" } |
| \<Object\>.fields_type | 성공하면 지정된 PDF에 각 필드를 나열하는 객체이고, 그렇지 않으면 오류 메시지입니다. 데이터 유형: 객체 "fields_type": { "<field type>": {Object}, } |
| \<Object\>.fields_type.\<필드\> | 각 필드의 페이지 번호를 포함하는 객체입니다. \<field\> 이름은 필드 레이블(예: "SSN" 또는 형식을 나타내는 자동화된 레이블)을 나타냅니다. 데이터 유형: 객체 "<field>": { "fieldsDetails": [Array], // Check boxes, radio buttons, choice boxes only "pageNumber": "String", "type": "String" } |
| \<Object\>.fields_type.\<field\>.fieldsDetails | 필드 이름과 선택 필드 유형에 대한 각 옵션의 해당 값이 포함된 객체의 목록입니다. 적용 가능한 유형: * 확인란 * 선택 상자 * 콤보 상자 * 다중 선택 상자 데이터 유형: 배열 "fieldsDetails": [ "fieldName": "String", "value": "String" ] |
| \<Object\>.fields_type.\<field\>.fieldsDetails.fieldName | 선택 필드의 이름입니다. 데이터 유형: 문자열 |
| \<Object\>.fields_type.\<field\>.fieldsDetails.value | 선택 필드의 값입니다. 데이터 유형: 문자열 |
| \<Object\>.fields_type.\<field\>.pageNumber | 이 필드에 해당하는 PDF 페이지 번호입니다. 데이터 유형: 문자열 |
| \<Object\>.fields_type.\<field\>.type | PDF 필드 유형입니다. 가능한 값: * check_box * choice_box * combo_box * multi_select_choice_box * push_button * radio_button * 서명 * 텍스트 데이터 유형: 문자열 |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 가능한 값: * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다.{#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_hdrNF} {#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_hdrNF} * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다.{#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_failScan} {#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_failScan} * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다.{#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_pendScan} {#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_pendScan} * 요청이 성공적으로 완료됨 - 운영이 성공했습니다.{#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_succ} {#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_succ} * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다.{#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_und} {#P-getDocumentFieldsType_S__api_pdfgen_reg_msg_und} {#P-getDocumentFieldsType_S__ul_qlv_5cv_j4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-getDocumentFieldsType_S__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 15. 반환]

{#P-getDocumentFieldsType_S__table_jxx_whk_34b}  
다음 예는 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 요청자, 개체 평면화) {#ariaid-title10}

편집 가능한 PDF의 필드를 채우고, 이미지를 만들고, Base64로 인코딩된 PDF로 변환합니다.
Base64 인코딩을 사용하면 이진 문자 구문을 손상시키지 않고 HTML이나 JSON과 같은 텍스트 문서 내에서 PDF를 문자열로 출력할 수 있습니다.  
다음 방법을 사용하여 PDF에 채울 수 있는지 확인하고 필드 정보를 가져올 수 있습니다.

* [isDocumentFillable()을 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-isDocumentFillable_S "PDF 문서에 편집 가능한 필드가 포함되어 있는지 확인합니다.")
* [getDocumentFields()를 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFields_S "PDF 문서에서 편집 가능한 필드 목록을 가져옵니다. 검사할 파일을 수동으로 열지 않고도 편집 가능한 PDF 필드를 나열할 수 있습니다.")
* [getDocumentFieldsType()을 호출합니다.](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-getDocumentFieldsType_S "PDF 문서에서 편집 가능한 필드 세트의 필드 유형을 가져옵니다.")
{#P-getFilDocWithSigAsBase64_O_S_O_O__ul_e1m_kpj_l4b}  
PDFGenerationAPI는 다양한 옵션이 있는 추가 채우기 메서드를 제공합니다.

* [fillDocumentFields()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocumentFields_O_S_S_S_S "편집 가능한 PDF의 필드를 채우고 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고 제공된 레코드에 첨부합니다.
* [fillDocumentFieldsAndFlatten()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillDocFieldsFlatten_O_S_S_S_S_O "편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고, 데이터 필드를 병합하고, 제공된 레코드에 첨부합니다.
* [fillFieldsAndMergeSignature()](https://servicenow-prod.fluidtopics.net/~0pM6BHBTDdjDO5SuzvfYg#P-fillFieldsMergeSig_O_S_S_S_S_O_O "편집 가능한 PDF의 필드를 채우고, 서명 이미지를 추가하고, 데이터 필드를 평면화하고, 제공된 레코드에 첨부합니다.") -- 편집 가능한 PDF의 필드를 채우고, 서명 이미지를 추가하고, 데이터 필드를 평면화하고, 제공된 레코드에 첨부합니다.
{#P-getFilDocWithSigAsBase64_O_S_O_O__ul_lyz_lft_l4b}
{#P-getFilDocWithSigAsBase64_O_S_O_O__table_w4w_xhk_34b__entry__3}{#P-getFilDocWithSigAsBase64_O_S_O_O__ph_api_pdfgen_parm_attIDesc}

| 이름 | 유형 | 설명 |
|-|-|-|
| fieldsMap | 객체 | 옵션입니다. PDF 필드 이름 및 입력할 값으로 키 값을 매핑합니다. getDocumentFields() 메서드를 사용하여 사용 가능한 필드 목록을 가져옵니다. |
| sysId | 문자열 | 첨부 파일 \[sys_attachment\] 테이블에 있는 PDF의 Sys_id입니다. |
| 요청자 | [PdfMergeSignRequestor](https://servicenow-prod.fluidtopics.net/xAAG4wqO_VaAVsY2CiZs4A#PdfMergeSignRequestorBothAPI "PdfMergeSignRequestor API는 PDF 문서에 서명을 나타내는 이미지를 추가하는 메서드를 제공합니다.") | pdfMergeSignRequestor에서 반환된 서명 입력입니다. |
| 평평 | 객체 | 옵션입니다. 필드를 평면화하면 다른 사용자가 정보를 변경할 수 없도록 필드를 잠글 수 있습니다. 키를 "FlattenType"으로 지정하고 평면화 옵션을 문자열로 제공합니다. 유효한 값은 다음과 같습니다. * donot_flatten - 필드를 평면화하지 마십시오. * partially_flatten - 수정된 필드만 평면화합니다. * fully_flatten - 모든 필드를 평면화합니다. {#P-getFilDocWithSigAsBase64_O_S_O_O__ul_mwn_5wc_k4b} 기본값: fully_flatten { "FlattenType": "String" } |
[표 16. 매개변수]

{#P-getFilDocWithSigAsBase64_O_S_O_O__table_w4w_xhk_34b} {#P-getFilDocWithSigAsBase64_O_S_O_O__table_x4w_xhk_34b__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | 성공하면 Base64 형식으로 변환된 PDF가 첨부 파일 테이블 \[sys_attachment\]에 추가됩니다. 컨텐츠는 필드와 서명이 채워진 상태로 제공된 PDF 첨부 파일을 반영합니다. 매개변수와 함께 flatten 대체 병합 옵션이 제공되지 않는 한 필드를 편집할 수 없습니다. |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 유효한 값은 다음과 같습니다. * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다. * 지정된 대상 기록 \[\<tableName\> - \<targetTableSysId\>\]이(가) 존재하지 않습니다. -- 제공된 테이블에 대상 테이블 sys_id이 없습니다. 기록에 올바른 테이블 이름을 포함해야 합니다. * 작성할 pdf와 관련된 양식이 없습니다. attachmentSysId: \<sys_id\> * 지정된 이름의 편집 가능한 필드가 없습니다. 확인하고 다시 시도하십시오. 필드 이름: \<필드 이름\> * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-getFilDocWithSigAsBase64_O_S_O_O__ul_eln_fwk_l4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-getFilDocWithSigAsBase64_O_S_O_O__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 17. 반환]

{#P-getFilDocWithSigAsBase64_O_S_O_O__table_x4w_xhk_34b}  
다음 예제에서는 PDF 첨부 파일에서 두 개의 필드를 로드하고, 필드를 병합하고, 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) {#ariaid-title11}

PDF 문서의 페이지 크기를 가져옵니다.
{#P-getPdfPageSizes_S__table_hmj_q5j_34b__entry__3}{#P-getPdfPageSizes_S__ph_api_pdfgen_parm_attIDesc}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 첨부 파일 \[sys_attachment\] 테이블에 있는 PDF의 Sys_id입니다. |
[표 18. 매개변수]

{#P-getPdfPageSizes_S__table_hmj_q5j_34b} {#P-getPdfPageSizes_S__table_v1y_g3k_34b__entry__2}{#P-getPdfPageSizes_S__api_pdfgen_ret_msg}

| 유형 | 설명 |
|-|-|
| 객체 | 성공하면 각 페이지의 크기를 포함하는 객체이고, 그렇지 않으면 오류 메시지입니다. { "pages_size": {Object}, "message": "String", "status": "String" } |
| \<Object\>.pages_크기 | 작업이 성공하면 각 PDF 페이지의 너비와 높이(포인트)입니다. 페이지 번호는 문자열로 반환되고 측정값은 숫자 데이터 형식으로 반환됩니다. 데이터 유형: 객체 "pages_size": {"<page number>":[<width>,<height>]} |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 가능한 값: * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-getPdfPageSizes_S__ul_qlv_5cv_j4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-getPdfPageSizes_S__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 19. 반환]

{#P-getPdfPageSizes_S__table_v1y_g3k_34b}  
다음 예제에서는 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) {#ariaid-title12}

PDF 문서에 편집 가능한 필드가 포함되어 있는지 확인합니다.
{#P-isDocumentFillable_S__table_drx_h3k_34b__entry__3}{#P-isDocumentFillable_S__ph_api_pdfgen_parm_attIDesc}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 첨부 파일 \[sys_attachment\] 테이블에 있는 PDF의 Sys_id입니다. |
[표 20. 매개변수]

{#P-isDocumentFillable_S__table_drx_h3k_34b} {#P-isDocumentFillable_S__table_erx_h3k_34b__entry__2}{#P-isDocumentFillable_S__api_pdfgen_ret_msg}

| 유형 | 설명 |
|-|-|
| 객체 | 성공하면 각 페이지의 크기를 포함하는 객체이고, 그렇지 않으면 오류 메시지입니다. { "document_editable": "String", "message": "String", "status": "String" } |
| \<Object\>.​document_editable | 작업이 성공하면 문서를 편집할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: PDF 문서에 편집 가능한 필드가 있습니다. * false: PDF 문서에 편집 가능한 필드가 없습니다. {#P-isDocumentFillable_S__ul_h4w_sbd_k4b} 데이터 유형: 문자열로 제공되는 부울 값 |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 가능한 값: * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다.{#P-isDocumentFillable_S__api_pdfgen_reg_msg_hdrNF} {#P-isDocumentFillable_S__api_pdfgen_reg_msg_hdrNF} * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다.{#P-isDocumentFillable_S__api_pdfgen_reg_msg_failScan} {#P-isDocumentFillable_S__api_pdfgen_reg_msg_failScan} * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다.{#P-isDocumentFillable_S__api_pdfgen_reg_msg_pendScan} {#P-isDocumentFillable_S__api_pdfgen_reg_msg_pendScan} * 요청이 성공적으로 완료됨 - 운영이 성공했습니다.{#P-isDocumentFillable_S__api_pdfgen_reg_msg_succ} {#P-isDocumentFillable_S__api_pdfgen_reg_msg_succ} * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다.{#P-isDocumentFillable_S__api_pdfgen_reg_msg_und} {#P-isDocumentFillable_S__api_pdfgen_reg_msg_und} {#P-isDocumentFillable_S__ul_qlv_5cv_j4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-isDocumentFillable_S__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 21. 반환]

{#P-isDocumentFillable_S__table_erx_h3k_34b}  
다음 예제에서는 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 -- 수정(객체 inputJson) {#ariaid-title13}

지정된 사각형 좌표, 검색 키워드 또는 둘 다를 기준으로 PDF 문서에 수정 작업을 적용합니다. 원본 PDF의 수정된 사본이 첨부 파일 \[sys_attachment\] 테이블에 생성됩니다.
주:  
* 수정 결과에는 수정하려는 의도가 아닌 텍스트를 덮어쓰는 예기치 않은 흰색 수정된 텍스트 블록이 포함될 수 있습니다. 이 이벤트가 발생하면 속성 또는 PDF 생성 유틸리티 플러그인을 사용하여 highlightedSections 수정할 컨텐츠를 수동으로 선택할 수 있습니다. 자세한 내용은 [Redact data from documents](https://www.servicenow.com/docs/access?context=redact-sensitive-data&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US) 문서를 참조하십시오.
* 이 방법은 JBIG2 이미지가 포함된 PDF에서 교정을 지원하지 않습니다.
{#P-redact_O__ul_ulb_2dx_qbc}
{#P-redact_O__table_drx_h3k_34b__entry__3}{#P-redact_O__ph_api_pdfgen_parm_attIDesc}

| 이름 | 유형 | 설명 |
|-|-|-|
| inputJson | 객체 | 수정할 PDF와 해당 내용을 식별합니다. { "sysId": "String", "highlightedSections": [Array], "searchedKeywords": [Array] } |
| 입력Json.sysId | 문자열 | 첨부 파일 \[sys_attachment\] 테이블에 있는 PDF의 Sys_id입니다. |
| inputJson입니다. highlightedSections | 객체 배열 | 객체로 제공되는 사각형 좌표의 목록입니다. 각 좌표는 각 페이지에서 수정할 콘텐츠의 위치를 나타냅니다. 속성을 포함하는 경우 선택 사항입니다 searchedKeywords . [ { "pageNumber": Number, "x": Number, "y": Number, "width": Number, "height": Number } ] |
| inputJson입니다. highlightedSections입니다. pageNumber | 번호 | 교정을 위해 선택할 컨텐츠가 포함된 PDF 페이지 번호입니다. |
| inputJson입니다. highlightedSections입니다. x | 번호 | PDF에서 교정 사각형의 X축(가로 위치)(포인트)입니다. PDF 페이지의 왼쪽 아래 모퉁이에 있는 값은 0입니다. 예를 들어, 값이 <kbd class="ph userinput">306</kbd> 이면 사각형이 대략 Letter 크기 PDF 페이지의 가로 가운데에 배치됩니다. |
| inputJson입니다. highlightedSections입니다. y | 번호 | PDF에서 교정 사각형의 Y축(세로 위치)입니다(포인트). PDF 페이지의 왼쪽 아래 모퉁이에 있는 값은 0입니다. 예를 들어, 값이 <kbd class="ph userinput">396</kbd> 이면 사각형이 대략 Letter 크기 PDF 페이지의 세로 가운데에 배치됩니다. |
| inputJson입니다. highlightedSections입니다. 너비 | 번호 | 교정 사각형의 너비는 포인트 단위입니다. 이 값은 x축과 y축이 교차하는 왼쪽 아래 지점에서 가로로 사각형의 크기를 늘립니다. |
| inputJson입니다. highlightedSections입니다. 높이 | 번호 | 교정 사각형의 높이(포인트)입니다. 이 값은 x축과 y축이 교차하는 왼쪽 아래 지점에서 세로로 사각형의 크기를 늘립니다. |
| inputJson입니다. searchedKeywords | 배열 | 수정할 텍스트를 찾는 데 사용되는 하나 이상의 문자열 목록입니다. 교정 사각형 크기는 결과적으로 차단된 텍스트의 높이 및 너비와 일치합니다. 속성을 포함하는 경우 선택 사항입니다 highlightedSections . 주: `경우에 따라 "items:"` 및 `"PDF.`"와 같은 특수 문자 또는 구두점이 포함된 텍스트 문자열이 수정되지 않습니다. 또는 문자열에서 문자를 제거하거나 텍스트를 제거할 영역을 강조 표시할 수 있습니다. |
[표 22. 매개변수]

{#P-redact_O__table_drx_h3k_34b} {#P-redact_O__table_phl_lzj_34b__entry__2}{#P-redact_O__desc-fill-only}{#P-redact_O__desc_pdfgen_ret_attID_Fill}

| 유형 | 설명 |
|-|-|
| 객체 | 성공한 경우 업데이트된 PDF 첨부 파일의 sys_id 포함하는 객체입니다. 그렇지 않으면 오류 메시지가 표시됩니다. { "attachment_id": "String", "message": "String", "status": "String" } |
| \<Object\>.​attachment_id | 작업이 성공하면 채워진 PDF를 sys_id. 파일이 첨부 파일 \[sys_attachment\] 테이블에 나열됩니다. 데이터 유형: 문자열 |
| \<Object\>.메시지 | 성공 또는 오류를 확인하는 메시지입니다. 가능한 값: * 이 형식을 구문 분석할 수 없음 -- PDF에 포함된 이미지를 처리할 수 없습니다. PDF에는 JBIG2 이미지와 같이 지원되지 않는 형식의 이미지가 하나 이상 포함되어 있습니다. * 소스 문서 내용을 읽는 동안 예외가 발생했습니다. PDF 헤더를 찾을 수 없습니다. -- 제공된 입력 첨부 파일이 올바른 PDF가 아닙니다. 올바른 첨부 파일 sys_id 제공합니다. * sys_id\[{0}\]이(가) 있는 첨부 파일이 보안 검사를 통과하지 못해 요청을 진행할 수 없음 -- PDF가 바이러스 백신 검사를 통과하지 못했습니다. * \[{0}\]이(가) sys_id 첨부 파일이 보안 검사 보류 중이므로 요청을 진행할 수 없음 -- PDF에 바이러스 백신 검사가 필요합니다. * 요청이 성공적으로 완료됨 - 운영이 성공했습니다. * 정의되지 않음 -- 제공된 Sys_id 없거나 PDF 첨부 파일이 아닙니다. {#P-redact_O__ul_eln_fwk_l4b} 데이터 유형: 문자열 |
| \<Object\>.상태 | 작업의 성공 여부를 나타내는 상태입니다. 가능한 값: * success - 운영이 성공했습니다. * failure -- 작업이 성공하지 못했습니다. message 에서 상세 정보를 제공합니다. {#P-redact_O__ul_rlv_5cv_j4b} 데이터 유형: 문자열 |
[표 23. 반환]

{#P-redact_O__table_phl_lzj_34b}  
다음 예제에서는 사각형 및 키워드로 수정하는 방법을 보여 줍니다. 수정된 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"}


