문서 - 범위 지정, 전역

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 17분
  • 문서 API는 PDF를 초기화하고, 콘텐츠를 추가하고, PDF를 닫는 메서드를 제공합니다. 컨텐츠를 추가한 후 문서를 대상 기록에 첨부할 수 있습니다.

    이 API는 PDF 생성 유틸리티 플러그인(com.snc.apppdfgenerator)의 ServiceNow 일부이며 sn_pdfgeneratorutils 네임스페이스 내에서 제공됩니다. 플러그인은 기본적으로 활성화됩니다.

    이 API는 PDF를 구성하는 다양한 요소를 빌드하기 위해 클래스 모음에 따라 달라집니다.
    • Cell 객체를 테이블의 셀로 만듭니다. 이 API를 사용하여 셀의 서식을 지정하고 단락 및 이미지와 같은 추가 블록을 포함할 수 있습니다.
    • 색상PDF의 요소에 적용할 수 있는 색상 특성을 정의하는 데 사용되는 Color 객체를 만듭니다. 셀, 테이블, 선 등이 있습니다.
    • 이미지PDF에 이미지와 해당 레이아웃 삽입을 나타내는 Image 객체를 만듭니다. 규모, 정렬 및 테두리 색상과 같은 속성을 정의할 수 있습니다.
    • 라인PDF에 선을 그리는 메서드를 사용하여 Line 객체를 만듭니다.
    • 단락PDF의 텍스트 블록을 나타내는 Paragraph 객체를 만듭니다.
    • PDF페이지PDF 페이지와 해당 속성을 나타내는 PdfPage 객체를 만듭니다. 크기, 너비 및 색상과 같은.
    • 스타일글꼴 크기, 테두리 및 정렬과 같은 속성을 정의하기 위한 스타일을 만듭니다. 여러 객체에 동일한 스타일을 동시에 적용할 수 있습니다.
    • PDF 문서에 추가할 테이블 객체를 만듭니다. 각 셀에서 사용할 데이터를 정의하고 스타일, 여백 및 정렬을 설정합니다.

    다음 예에서는 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 예.

    문서 - 문서(PdfPage pageSize)

    문서 개체를 인스턴스화하고 PDF 문서를 생성합니다.

    표 1. 매개변수
    이름 유형 설명
    pageSize PDF 페이지 PDF 페이지 크기입니다.
    표 2. 반환
    유형 설명
    객체 PDF 문서.

    다음 예제에서는 Document 개체를 만들고 PDF를 반환하는 방법을 보여 줍니다.

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

    문서 – addAndStartNewPage()

    현재 페이지를 종료하고 새 페이지를 생성하여 문서에 페이지를 추가합니다.

    문서에 새 페이지를 추가하는 추가 방법:
    • addNewPage()문서에 새 빈 페이지를 추가합니다. 페이지 나누기를 강제로 사용하여 문서의 새 장이나 구역을 시작할 수 있습니다.
    • addNewPageAtIndex()문서의 지정된 색인에 새 페이지를 추가합니다. 예를 들어, 색인을 6으로 설정하면 문서의 6페이지가 삽입되거나 기존 6페이지의 위치에 페이지가 삽입됩니다. 원래 페이지 6은 페이지 7이 됩니다.
    표 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");

    문서 – addAuthor(String author)

    PDF 문서 속성의 작성자 필드에 이름을 추가합니다.

    표 5. 매개변수
    이름 유형 설명
    저자 문자열 문서 작성자의 이름입니다.
    표 6. 반환
    유형 설명
    없음

    다음 예는 PDF 문서 속성의 작성자 필드에 이름을 추가하는 방법을 보여줍니다. 문서 사용 예제는 문서 API를 참조하세요.

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

    문서 – addImage(이미지 이미지)

    문서에 이미지를 추가합니다.

    표 7. 매개변수
    이름 유형 설명
    이미지 이미지 문서에 추가할 이미지입니다.
    표 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");

    문서 – addNewLine()

    문서에 새 빈 줄을 추가합니다.

    표 9. 매개변수
    이름 유형 설명
    없음
    표 10. 반환
    유형 설명
    없음

    다음 예제에서는 문서에 새 줄을 추가하는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.

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

    문서 – addNewPage()

    문서에 새 빈 페이지를 추가합니다. 페이지 나누기를 강제로 사용하여 문서의 새 장이나 구역을 시작할 수 있습니다.

    문서에 새 페이지를 추가하는 추가 방법:
    • addAndStartNewPage()–현재 페이지를 종료하고 새 페이지를 생성하여 문서에 페이지를 추가합니다.
    • addNewPageAtIndex()문서의 지정된 색인에 새 페이지를 추가합니다. 예를 들어, 색인을 6으로 설정하면 문서의 6페이지가 삽입되거나 기존 6페이지의 위치에 페이지가 삽입됩니다. 원래 페이지 6은 페이지 7이 됩니다.
    표 11. 매개변수
    이름 유형 설명
    없음
    표 12. 반환
    유형 설명
    없음

    다음 예제에서는 문서에 새 빈 페이지를 추가하는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.

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

    문서 – addNewPageAtIndex(숫자 인덱스)

    문서의 지정된 색인에 새 페이지를 추가합니다. 예를 들어, 색인을 6으로 설정하면 문서의 6페이지가 삽입되거나 기존 6페이지의 위치에 페이지가 삽입됩니다. 원래 페이지 6은 페이지 7이 됩니다.

    문서에 새 페이지를 추가하는 추가 방법:
    • addAndStartNewPage()–현재 페이지를 종료하고 새 페이지를 생성하여 문서에 페이지를 추가합니다.
    • addNewPage()문서에 새 빈 페이지를 추가합니다. 페이지 나누기를 강제로 사용하여 문서의 새 장이나 구역을 시작할 수 있습니다.
    표 13. 매개변수
    이름 유형 설명
    index 번호 새 페이지를 삽입할 위치입니다.
    표 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);

    문서 – addParagraph(단락 단락)

    문서에 단락을 추가합니다.

    표 15. 매개변수
    이름 유형 설명
    단락 단락 단락 객체로 제공되는 텍스트 블록입니다.
    표 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);

    문서 – addTable(테이블 테이블)

    문서에 테이블을 추가합니다.

    표 17. 매개변수
    이름 유형 설명
    테이블 테이블 문서에 삽입할 테이블입니다.
    표 18. 반환
    유형 설명
    없음

    다음 예제에서는 문서에 표를 추가하는 방법을 보여 줍니다. 테이블을 정의하는 방법에 대한 자세한 내용은 테이블 API 를 참조하세요. 문서 사용 예제는 문서 API를 참조하세요.

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

    문서 – close()

    문서를 닫습니다.

    표 19. 매개변수
    이름 유형 설명
    없음
    표 20. 반환
    유형 설명
    없음

    다음 예제에서는 문서를 닫는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.

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

    문서 – createDocument(PdfPage pageSize)

    지정된 페이지 크기로 문서를 작성합니다.

    표 21. 매개변수
    이름 유형 설명
    pageSize PDF 페이지 문서 페이지 크기입니다.
    표 22. 반환
    유형 설명
    객체 PDF 문서.

    다음 예제에서는 문서를 만드는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.

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

    문서 – 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

    문서 – getPageSize()

    문서의 기본 페이지 크기를 가져옵니다.

    표 25. 매개변수
    이름 유형 설명
    없음
    표 26. 반환
    유형 설명
    문자열 PdfPage API를 사용하여 설정된 기본 페이지 크기의 값입니다.
    가능한 값:
    • A4 – 595 x 842 포인트
    • 이그제큐티브 – 522 x 756점
    • LETTER – 612 x 792포인트
    • 원장 – 792 x 1224 포인트

    다음 예제에서는 문서의 페이지 크기를 가져오는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.

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

    문서 – 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();

    문서 – saveAsAttachment(String tableName, String tableSysId, String 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");

    문서 – setBaseDirection(문자열 방향)

    문자 인식에 따라 재정렬할 기본 텍스트 흐름 방향을 설정합니다.

    표 31. 매개변수
    이름 유형 설명
    방향 문자열 텍스트 플로우 방향입니다.
    유효한 값은 다음과 같습니다.
    • 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");

    문서 – setMargins(Number topMargin, Number rightMargin, Number bottomMargin, Number leftMargin)

    문서의 페이지 여백 크기를 설정합니다.

    표 33. 매개변수
    이름 유형 설명
    topMargin 번호 위쪽 여백의 높이(포인트)입니다.
    오른쪽 여백 번호 오른쪽 여백의 너비(포인트)입니다.
    하단 여백 번호 하단 여백의 높이(포인트)입니다.
    왼쪽 여백 번호 왼쪽 여백의 너비(포인트)입니다.
    표 34. 반환
    유형 설명
    없음

    다음 예제에서는 문서에서 페이지 여백을 설정하는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.

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