문서 - 범위 지정, 전역
문서 API는 PDF를 초기화하고, 콘텐츠를 추가하고, PDF를 닫는 메서드를 제공합니다. 컨텐츠를 추가한 후 문서를 대상 기록에 첨부할 수 있습니다.
이 API는 PDF 생성 유틸리티 플러그인(com.snc.apppdfgenerator)의 ServiceNow 일부이며 sn_pdfgeneratorutils 네임스페이스 내에서 제공됩니다. 플러그인은 기본적으로 활성화됩니다.
- 셀 – 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] 테이블에 나열됩니다.
문서 - 문서(PdfPage pageSize)
문서 개체를 인스턴스화하고 PDF 문서를 생성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| pageSize | PDF 페이지 | PDF 페이지 크기입니다. |
| 유형 | 설명 |
|---|---|
| 객체 | 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이 됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 문서에 새 페이지를 추가하는 방법을 보여 줍니다. 문서 사용 예제는 문서 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 문서 속성의 작성자 필드에 이름을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 저자 | 문자열 | 문서 작성자의 이름입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예는 PDF 문서 속성의 작성자 필드에 이름을 추가하는 방법을 보여줍니다. 문서 사용 예제는 문서 API를 참조하세요.
var author = "John Do";
document.addAuthor(author);
문서 – addImage(이미지 이미지)
문서에 이미지를 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 이미지 | 이미지 | 문서에 추가할 이미지입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 문서에 이미지를 추가하는 방법을 보여 줍니다. 문서 사용 예제는 문서 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()
문서에 새 빈 줄을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 문서에 새 줄을 추가하는 방법을 보여 줍니다. 문서 사용 예제는 문서 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이 됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 문서에 새 빈 페이지를 추가하는 방법을 보여 줍니다. 문서 사용 예제는 문서 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() – 문서에 새 빈 페이지를 추가합니다. 페이지 나누기를 강제로 사용하여 문서의 새 장이나 구역을 시작할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| index | 번호 | 새 페이지를 삽입할 위치입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 문서의 위치 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(단락 단락)
문서에 단락을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 단락 | 단락 | 단락 객체로 제공되는 텍스트 블록입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 문서에 단락을 추가하는 방법을 보여 줍니다. 문서 사용 예제는 문서 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(테이블 테이블)
문서 – close()
문서를 닫습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 문서를 닫는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.close();
문서 – createDocument(PdfPage pageSize)
문서 – getPageCount()
문서의 페이지 수를 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 번호 | 문서의 페이지 수입니다. |
다음 예제에서는 9페이지 문서의 페이지 수를 가져오는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var count = document.getPageCount();
gs.info("The number of pages is " + count);
출력:
The number of pages is 9
문서 – getPageSize()
문서의 기본 페이지 크기를 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | PdfPage API를 사용하여 설정된 기본 페이지 크기의 값입니다. 가능한 값:
|
다음 예제에서는 문서의 페이지 크기를 가져오는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
var pagesize = document.getPageSize();
문서 – isClosed()
문서가 닫혀 있는지 열려 있는지 여부를 나타냅니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 | 문서가 열려 있는지 또는 닫혀 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: 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)
지정된 대상 테이블에 문서 파일을 첨부합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| tableName | 문자열 | 문서를 첨부할 테이블의 이름입니다. |
| tableSysId | 문자열 | 문서를 첨부할 기록의 Sys_id입니다. |
| fileName | 문자열 | 첨부할 문서의 이름입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 첨부 파일 [sys_attachment] 테이블에 있는 첨부 문서의 Sys_id. |
다음 예는 인시던트 기록에 문서를 첨부하는 방법을 보여줍니다. 문서 사용 예제는 문서 API를 참조하세요.
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
// Additional document properties
document.saveAsAttachment("incident", "<record_sys_id>", "SampleDocGeneration.pdf");
문서 – setBaseDirection(문자열 방향)
문자 인식에 따라 재정렬할 기본 텍스트 흐름 방향을 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 방향 | 문자열 | 텍스트 플로우 방향입니다. 유효한 값은 다음과 같습니다.
기본값: LEFT_TO_RIGHT |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 텍스트 흐름을 왼쪽에서 오른쪽으로 설정하는 방법을 보여 줍니다. 문서 사용 예제는 문서 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)
문서의 페이지 여백 크기를 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| topMargin | 번호 | 위쪽 여백의 높이(포인트)입니다. |
| 오른쪽 여백 | 번호 | 오른쪽 여백의 너비(포인트)입니다. |
| 하단 여백 | 번호 | 하단 여백의 높이(포인트)입니다. |
| 왼쪽 여백 | 번호 | 왼쪽 여백의 너비(포인트)입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 문서에서 페이지 여백을 설정하는 방법을 보여 줍니다. 문서 사용 예제는 문서 API를 참조하세요.
var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
document.setMargins(72,36,36,36);