Documento - com escopo, global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 10 min. de leitura
  • A API do documento fornece métodos para inicializar um PDF, adicionar conteúdo e fechar o PDF. Depois de adicionar conteúdo, o documento pode ser anexado a um registro de destino.

    Esta API faz parte do plug-in ServiceNow Utilitários de geração de PDF (com.snc.apppdfgenerator) e é fornecida no namespace sn_pdfgeneratorutils. O plug-in é ativado por padrão.

    Esta API depende de um pacote de classes para criar vários elementos que compõem um PDF.
    • Célula - Cria um objeto de célula como uma célula em uma tabela. Você pode usar esta API para formatar a célula e incluir blocos adicionais, como parágrafos e imagens.
    • CorCria um objeto Cor usado para definir atributos de cor que você pode aplicar a elementos em um PDF; como células, tabelas e linhas.
    • ImagemCria um objeto Image que representa uma imagem e sua inserção de layout em um PDF. Permite definir atributos como escala, alinhamento e cor da borda.
    • LinhaCria um objeto de linha usando métodos para desenhar uma linha em um PDF.
    • ParágrafoCria um objeto de parágrafo que representa um bloco de texto em um PDF.
    • PdfPageCria um objeto PdfPage que representa uma página de PDF e seus atributos; como tamanho, largura e cor.
    • EstiloCria um estilo para definir propriedades como tamanho da fonte, borda e alinhamento. Você pode aplicar o mesmo estilo a vários objetos simultaneamente.
    • TabelaCria um objeto de tabela para adicionar a um documento PDF. Define os dados a serem usados em cada célula e define estilos, margens e alinhamento.

    O exemplo a seguir mostra como criar um PDF básico usando a API do documento e vários componentes, como tabela, célula e parágrafo. O resultado é uma lista de Incidentes da tabela Incidente [incidente] listados em um PDF. Você pode testar este exemplo em sua instância se substituir<sys_id> com o sys_id de um registro de incidente.

    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");

    O anexo PDF está listado na tabela Anexos [sys_attachment].

    Exemplo de PDF com saída como tabela de duas colunas que lista os números e as descrições dos incidentes.

    Document - Document(PdfPage pageSize)

    Instancia um objeto Document e gera um documento PDF.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    pageSize PdfPage Tamanho da página do PDF.
    Tabela 2. Retorna
    Tipo Descrição
    Objeto Documento PDF.

    O exemplo a seguir mostra como criar um objeto Document e retornar um PDF.

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

    Documento – addAndStartNewPage()

    adiciona uma página ao documento encerrando a página atual e criando uma nova.

    Métodos adicionais para adicionar uma nova página em um documento:
    • addNewPage()Adiciona uma nova página em branco ao documento. Use para forçar uma quebra de página para iniciar um novo capítulo ou seção no documento.
    • addNewPageAtIndex()adiciona uma nova página no índice especificado do documento. Por exemplo, definir o índice como 6 insere uma página seis ou insere a página na posição da página seis existente em um documento. A página seis original se torna a página sete.
    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como adicionar uma nova página a um documento. Para obter um exemplo de uso de documento, consulte Document 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");

    Documento – addAuthor(cadeia de caracteres autor)

    Adiciona um nome ao campo de autor nas propriedades do documento PDF.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    autor Cadeia de caracteres Nome do autor do documento.
    Tabela 6. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como adicionar um nome ao campo de autor nas propriedades do documento PDF. Para obter um exemplo de uso de documento, consulte Document API.

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

    Document – addImage(Image image)

    Adiciona uma imagem a um documento.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    imagem Imagem Imagem a ser adicionada a um documento.
    Tabela 8. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como adicionar uma imagem a um documento. Para obter um exemplo de uso de documento, consulte Document 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");

    Documento – addNewLine()

    Adiciona uma nova linha vazia ao documento.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 10. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como adicionar uma nova linha a um documento. Para obter um exemplo de uso de documento, consulte Document API.

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

    Documento – addNewPage()

    Adiciona uma nova página em branco ao documento. Use para forçar uma quebra de página para iniciar um novo capítulo ou seção no documento.

    Métodos adicionais para adicionar uma nova página em um documento:
    • addAndStartNewPage()adiciona uma página ao documento encerrando a página atual e criando uma nova.
    • addNewPageAtIndex()adiciona uma nova página no índice especificado do documento. Por exemplo, definir o índice como 6 insere uma página seis ou insere a página na posição da página seis existente em um documento. A página seis original se torna a página sete.
    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como adicionar uma nova página em branco a um documento. Para obter um exemplo de uso de documento, consulte Document API.

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

    Documento – addNewPageAtIndex(Number index)

    adiciona uma nova página no índice especificado do documento. Por exemplo, definir o índice como 6 insere uma página seis ou insere a página na posição da página seis existente em um documento. A página seis original se torna a página sete.

    Métodos adicionais para adicionar uma nova página em um documento:
    • addAndStartNewPage()adiciona uma página ao documento encerrando a página atual e criando uma nova.
    • addNewPage()Adiciona uma nova página em branco ao documento. Use para forçar uma quebra de página para iniciar um novo capítulo ou seção no documento.
    Tabela 13. Parâmetros
    Nome Tipo Descrição
    índice Número Posição na qual inserir uma nova página.
    Tabela 14. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como adicionar uma nova página de PDF à posição 6 de um documento. Para obter um exemplo de uso de documento, consulte Document API.

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

    Documento – addParagraph(Parágrafo do parágrafo)

    Adiciona um parágrafo a um documento.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    parágrafo Parágrafo Bloco de texto fornecido como um objeto de parágrafo.
    Tabela 16. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como adicionar um parágrafo a um documento. Para obter um exemplo de uso de documento, consulte Document API.

    var pageSize = new sn_pdfgeneratorutils.PdfPage("A4");
    var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
    
    var para = "Lorem ipsum dolor sit amet.";
    
    document.addParagraph(para);

    Document – addTable(Table table)

    Adiciona uma tabela a um documento.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    tabela Tabela Tabela a ser inserida no documento.
    Tabela 18. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como adicionar uma tabela a um documento. Consulte a API da tabela para obter mais detalhes sobre como definir uma tabela. Para obter um exemplo de uso de documento, consulte Document API.

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

    Documento – fechar ()

    Fecha um documento.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 20. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como fechar um documento. Para obter um exemplo de uso de documento, consulte Document API.

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

    Documento – createDocument(PdfPage pageSize)

    Cria um documento com o tamanho de página especificado.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    pageSize PdfPage Tamanho da página do documento.
    Tabela 22. Retorna
    Tipo Descrição
    Objeto Documento PDF.

    O exemplo a seguir mostra como criar um documento. Para obter um exemplo de uso de documento, consulte Document API.

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

    Documento – getPageCount()

    Obtém o número de páginas do documento.

    Tabela 23. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 24. Retorna
    Tipo Descrição
    Número Número de páginas no documento.

    O exemplo a seguir mostra como obter a contagem de páginas de um documento de nove páginas. Para obter um exemplo de uso de documento, consulte Document 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);

    Saída:

    The number of pages is 9

    Documento – getPageSize()

    Obtém o tamanho de página padrão do documento.

    Tabela 25. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 26. Retorna
    Tipo Descrição
    Cadeia de caracteres Valor do tamanho de página padrão definido usando a API PdfPage.
    Valores possíveis:
    • A4 – 595 x 842 pontos
    • EXECUTIVO – 522 x 756 pontos
    • CARTA – 612 x 792 pontos
    • LAZER – 792 x 1224 pontos

    O exemplo a seguir mostra como obter o tamanho da página de um documento. Para obter um exemplo de uso de documento, consulte Document API.

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

    Documento – isClosed()

    Indica se um documento está fechado ou aberto.

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 28. Retorna
    Tipo Descrição
    Nenhum Sinalizador que indica se um documento está aberto ou fechado.
    Valores válidos:
    • verdadeiro: o documento está fechado.
    • falso: o documento está aberto.

    Padrão: verdadeiro

    O exemplo a seguir mostra como obter o tamanho da página de um documento. Para obter um exemplo de uso de documento, consulte Document API.

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

    Documento – saveAsAttachment(cadeia de caracteres "tableName", cadeia de caracteres "tableSysId", cadeia de caracteres fileName)

    Anexa o arquivo de documento à tabela de destino especificada.

    Tabela 29. Parâmetros
    Nome Tipo Descrição
    tableName Cadeia de caracteres Nome da tabela à qual o documento será anexado.
    tableSysId Cadeia de caracteres Sys_id do registro ao qual o documento será anexado.
    fileName Cadeia de caracteres Nome do documento a ser anexado.
    Tabela 30. Retorna
    Tipo Descrição
    Cadeia de caracteres Sys_id do documento anexado na tabela Anexos [sys_attachment].

    O exemplo a seguir mostra como anexar um documento a um registro de incidente. Para obter um exemplo de uso de documento, consulte Document API.

    var document = new sn_pdfgeneratorutils.Document.createDocument(pageSize);
    
    // Additional document properties
    
    document.saveAsAttachment("incident", "<record_sys_id>", "SampleDocGeneration.pdf");

    Documento – setBaseDirection(cadeia de caracteres direção)

    Define a direção do fluxo de texto base para reordenar com base no reconhecimento de caracteres

    Tabela 31. Parâmetros
    Nome Tipo Descrição
    direção Cadeia de caracteres Direção do fluxo de texto.
    Valores válidos:
    • LEFT_TO_Right: fluxo de texto de ordem da esquerda para a direita. A direção do texto só será reordenada se os caracteres de idioma da esquerda para a direita forem detectados.
    • Right_to_left: fluxo de texto de ordem da direita para a esquerda. A direção do texto só será reordenada se os caracteres de idioma da direita para a esquerda forem detectados.

    Padrão: LEFT_TO_Right

    Tabela 32. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como definir o fluxo de texto da esquerda para a direita. Para obter um exemplo de uso de documento, consulte Document API.

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

    Document – setMargins(Number topMargin, Number RightMargin, Number BottomMargin, NumberleftMargin)

    Define os tamanhos da margem da página no documento.

    Tabela 33. Parâmetros
    Nome Tipo Descrição
    topMargin Número Altura da margem superior em pontos.
    direitaMargem Número Largura da margem direita em pontos.
    BottomMargin Número Altura da margem inferior em pontos.
    leftMargin Número Largura da margem esquerda em pontos.
    Tabela 34. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como definir as margens da página em um documento. Para obter um exemplo de uso de documento, consulte Document API.

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