PDFGenerationAPI - com escopo, global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 28 min. de leitura
  • A PDFGenerationAPI fornece suporte para conversão de PDF e manipulação de campos de PDF.

    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.

    Esses métodos também podem ser usados para documentos criados por itens fora do catálogo. Os métodos nesta classe permitem as seguintes tarefas:
    • Gerar um PDF dinamicamente a partir de uma cadeia de caracteres HTML e anexá-lo a um registro
    • Preencher campos em um PDF
    • Assinar um PDF
    • Não nivelado, nivelado ou parcialmente nivelado
    • Recuperando dados de campo de PDF

    PDFGenerationAPI – convertToPDF(cadeia de caracteres html, cadeia de caracteres targetTable, cadeia de caracteres targetTableSysId, cadeia de caracteres pdfName, cadeia de caracteres fontFamilySysId, objeto documentConfiguration)

    Converte uma cadeia de caracteres HTML em um documento PDF.

    Para gerar um PDF com informações de cabeçalho e rodapé, como números de página, use convertToPDFWithHeaderFooter().

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    html Cadeia de caracteres HTML a ser convertido em um documento PDF.
    targetTable Cadeia de caracteres Nome da tabela na qual anexar o PDF convertido.
    targetTableSysId Cadeia de caracteres Sys_id do registro ao qual anexar o PDF convertido.
    pdfName Cadeia de caracteres Nome a ser fornecido ao PDF.

    Padrão: Sys_id do PDF na tabela Anexos [sys_attachment].

    fontFamilySysId Cadeia de caracteres Opcional. Sys_id da família de fontes a ser usada no PDF. Este sys_id é da tabela Família de fontes de geração de PDF [sys_pdf_operation_font_family].

    Padrão: nenhum

    DocumentConfiguration Objeto Opcional. Objeto que contém uma configuração de índice e uma configuração de número de página.
    {​
       "toc_config" : "String",​
       "page_number_config": "String"​
    }​
    documentConfiguration.toc_config Cadeia de caracteres Opcional. Sys_id da configuração do índice a ser usada para o PDF. Este sys_id é da tabela Configuração do índice [doc_toc_config].

    Padrão: nenhum

    DocumentConfiguration.page_number_config Cadeia de caracteres Opcional. Sys_id da configuração do número de página a ser usada para o PDF. Este sys_id é da tabela Configuração de número de página [doc_page_number_config].

    Padrão: nenhum

    Tabela 2. Retorna
    Tipo Descrição
    Objeto Objeto que contém sys_id do anexo de PDF se a conversão for bem-sucedida, caso contrário, uma mensagem de erro.
    {
      "attachment_id": "String",
      "message": "String",
      "request_id": "String",
      "status": "String"
    }
    <Object>.​attachment_id Se a conversão de HTML for bem-sucedida, o sys_id do PDF convertido e anexado. O arquivo está listado na tabela Anexos [sys_attachment].

    Tipo de dados: cadeia de caracteres

    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores possíveis:
    • Falha na conversão. – Nenhum PDF criado. Verifique se os valores fornecidos são precisos.
    • A conversão foi bem-sucedida. – O HTML convertido com sucesso em PDF.
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • Dado registro de destino [<tableName> -<targetTableSysId> ] não existe. – A tabela de destino sys_id não está na tabela fornecida. Certifique-se de incluir o nome da tabela correto para o registro.
    • Nenhum formulário associado ao pdf para preencher. attachmentSysId:<sys_id>
    • Não existem campos editáveis com os nomes especificados. Verifique e tente novamente. Nomes de campo:<field names>
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.request_id Sys_id do registro de solicitação do produtor de mudança.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como converter HTML em PDF e anexá-lo a um registro na tabela Incidente [incidente].

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

    Saída:

    {"attachment_id":"<sys_id>","message":"Conversion is successful.","request_id":"<change_sys_id>","status":"success"}

    PDFGenerationAPI – convertToPDFWithHeaderFooter(cadeia de caracteres html, cadeia de caracteres targetTable, cadeia de caracteres targetTableSysId, cadeia de caracteres pdfName, objeto headerFooterInfo, cadeia de caracteres fontFamilySysId, objeto documentConfiguration)

    Converte uma cadeia de caracteres HTML em um PDF com conteúdo de cabeçalho e rodapé.

    Use este método para gerar PDFs com configurações de página:
    • Informações de cabeçalho e rodapé
    • Tamanhos da margem
    • Orientação
    • Enumeração
    • Tamanho da página
    Tabela 3. Parâmetros
    Nome Tipo Descrição
    html Cadeia de caracteres HTML a ser convertido em um documento PDF.
    targetTable Cadeia de caracteres Nome da tabela na qual anexar o PDF convertido.
    targetTableSysId Cadeia de caracteres Sys_id do registro ao qual anexar o PDF convertido.
    pdfName Cadeia de caracteres Nome a ser fornecido ao PDF.

    Padrão: Sys_id do PDF na tabela Anexos [sys_attachment].

    cabeçalhoFooterInfo Objeto Define os detalhes do cabeçalho e rodapé do 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.​FooterImageAlignment Cadeia de caracteres Define a posição da imagem no rodapé.
    Valores válidos:
    • BOTTOM_CENTER: posiciona a imagem na parte inferior central do rodapé.
    • BOTTOM_LEFT: posiciona a imagem na área inferior esquerda do rodapé.
    • BOTTOM_Right: posicione a imagem na área inferior direita do rodapé.
    • TOP_CENTER: posiciona a imagem na parte superior central do rodapé.
    • TOP_LEFT: posiciona a imagem na área superior esquerda do rodapé.
    • TOP_Right: posicione a imagem na área superior direita do rodapé.
    headerFooterInfo.​FooterImageAttachmentId Cadeia de caracteres Sys_id da imagem do rodapé na tabela Anexos [sys_attachment]. Para determinar se o tipo de arquivo é compatível com sua instância, navegue até Propriedades do sistema > Segurança e verifique se ele está listado no campo Lista de extensões de arquivo (separadas por vírgulas) que podem ser anexadas.
    headerFooterInfo.​FooterImageHeight Cadeia de caracteres Altura da imagem do rodapé.

    Padrão: 50 pontos

    headerFooterInfo.​FooterText Cadeia de caracteres Texto do rodapé a ser colocado na parte inferior de cada página do PDF.
    headerFooterInfo.​FooterTextAlignment Cadeia de caracteres Define a posição do texto no rodapé. Certifique-se de que este valor não corresponda ou entre em conflito com a área fornecida em headerFooterInfo.FooterImageAlignment.
    Valores válidos:
    • BOTTOM_CENTER: posiciona o texto na parte inferior central do rodapé.
    • BOTTOM_LEFT: posiciona o texto na área inferior esquerda do rodapé.
    • BOTTOM_Right: posicione o texto na área inferior direita do rodapé.
    • TOP_CENTER: posiciona o texto na parte superior central do rodapé.
    • TOP_LEFT: posiciona o texto na área superior esquerda do rodapé.
    • TOP_Right: posicione o texto na área superior direita do rodapé.
    headerFooterInfo.​GeneratePageNumber Cadeia de caracteres Sinalizador que indica se um número de página de PDF deve ser gerado.
    Valores válidos:
    • verdadeiro: gerar números de página.
    • false: não gera números de página.

    Padrão: verdadeiro

    headerFooterInfo.​HeaderImageAlignment Cadeia de caracteres Define a posição da imagem no cabeçalho.
    Valores válidos:
    • center: posicione a imagem no centro do cabeçalho.
    • à esquerda: posicione a imagem no lado esquerdo do cabeçalho.
    • à direita: posicione a imagem no lado direito do cabeçalho.
    headerFooterInfo.​HeaderImageAttachmentId Cadeia de caracteres Sys_id da imagem do cabeçalho na tabela Anexos [sys_attachment]. Para determinar se o tipo de arquivo é compatível com sua instância, navegue até Propriedades do sistema > Segurança e verifique se ele está listado no campo Lista de extensões de arquivo (separadas por vírgulas) que podem ser anexadas.
    headerFooterInfo.​HeaderImageHeight Cadeia de caracteres Altura da imagem do cabeçalho.

    Padrão: 50 pontos

    headerFooterInfo.​LeftOrRightMargin Cadeia de caracteres Tamanho das margens esquerda e direita. Se posicionado no lado esquerdo ou direito da página, os detalhes do cabeçalho/rodapé serão colocados nesta área.

    Padrão: 36 pontos

    headerFooterInfo.​PageOrientation Cadeia de caracteres Orientação da página.
    Valores válidos:
    • RETRATO
    • PAISAGEM

    Padrão: vertical

    headerFooterInfo.​PageSize Cadeia de caracteres Tamanho da página do documento.
    Valores válidos:
    • A4 – 595 x 842 pontos
    • CARTA – 612 x 792 pontos
    • LAZER – 792 x 1224 pontos
    headerFooterInfo.​TopOrBottomMargin Cadeia de caracteres Tamanho das margens superior e inferior. Os detalhes do cabeçalho e do rodapé são colocados nesta área.

    Padrão: 72 pontos

    fontFamilySysId Cadeia de caracteres Opcional. Sys_id da família de fontes a ser usada no PDF. Este sys_id é da tabela Família de fontes de geração de PDF [sys_pdf_operation_font_family].

    Padrão: nenhum

    DocumentConfiguration Objeto Opcional. Objeto que contém uma configuração de índice e uma configuração de número de página.
    {​
       "toc_config" : "String",​
       "page_number_config": "String"​
    }​
    documentConfiguration.toc_config Cadeia de caracteres Opcional. Sys_id da configuração do índice a ser usada para o PDF. Este sys_id é da tabela Configuração do índice [doc_toc_config].

    Padrão: nenhum

    DocumentConfiguration.page_number_config Cadeia de caracteres Opcional. Sys_id da configuração do número de página a ser usada para o PDF. Este sys_id é da tabela Configuração de número de página [doc_page_number_config].

    Padrão: nenhum

    Tabela 4. Retorna
    Tipo Descrição
    Objeto Objeto que contém sys_id do anexo de PDF se a conversão for bem-sucedida, caso contrário, uma mensagem de erro.
    {
      "attachment_id": "String",
      "message": "String",
      "request_id": "String",
      "status": "String"
    }
    <Object>.​attachment_id Se a conversão de HTML for bem-sucedida, o sys_id do PDF convertido e anexado. O arquivo está listado na tabela Anexos [sys_attachment].

    Tipo de dados: cadeia de caracteres

    <Object>.​mensagem Mensagem confirmando sucesso ou erro.
    Valores possíveis:
    • Falha na conversão. – Nenhum PDF criado. Verifique se os valores fornecidos são precisos.
    • A conversão foi bem-sucedida. – O HTML convertido com sucesso em PDF.
    • O alinhamento da imagem do rodapé e o alinhamento do texto não podem estar na mesma região com o mesmo alinhamento:<footerImageAlignment value> – Certifique-se de que os valores headerFooterInfo.​FooterImageAlignment e headerFooterInfo.​FooterTextAlignment não estejam na mesma área.
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • Dado registro de destino [<tableName> -<targetTableSysId> ] não existe. – A tabela de destino sys_id não está na tabela fornecida. Certifique-se de incluir o nome da tabela correto para o registro.
    • Alinhamento de imagem de rodapé inválido:<invalid_option> foi fornecido. – Forneça uma opção válida na propriedade headerFooterInfo.​FooterImageAlignment.
    • Alinhamento de texto do rodapé inválido: " +<invalid_option> + " foi fornecido. – Forneça uma opção válida na propriedade headerFooterInfo.​footerTextAlignment.
    • Nenhum formulário associado ao pdf para preencher. attachmentSysId:<sys_id>
    • Não existem campos editáveis com os nomes especificados. Verifique e tente novamente. Nomes de campo:<field names>
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Não é possível obter a imagem do rodapé. sysId: +<value provided> – Verifique se o sys_id fornecido para headerFooterInfo.​footerImageId é preciso.
    • Não é possível obter a imagem do cabeçalho. sysId: +<value provided> – Verifique se o sys_id fornecido para headerFooterInfo.​headerImageId é preciso.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.request_id Sys_id do registro de solicitação do produtor de mudança.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como converter HTML em um PDF chamado "myPDF" e adicionar o PDF como um anexo a um registro na tabela Incidente [incidente]. O PDF contém cabeçalho e rodapé fornecidos por meio de anexo.

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

    Saída:

    {"attachment_id":"<sys_id>","message":"Conversion is successful.","request_id":"<change_sys_id>","status":"success"}

    PDFGenerationAPI –fillDocumentFieldsAndFlathen(objeto fieldMap, cadeia de caracteres sysId, cadeia de caracteres tableName, cadeia de caracteres tableSysId, cadeia de caracteres pdfName, objeto nivelado)

    preenche os campos em um PDF editável, nivela os campos de dados e os anexa ao registro fornecido.

    Use os seguintes métodos para determinar se o PDF pode ser preenchido e obter informações de campo:
    A PDFGenerationAPI fornece métodos de preenchimento adicionais com diferentes opções:
    Tabela 5. Parâmetros
    Nome Tipo Descrição
    camposMapa Objeto Opcional. Mapa de valor de chave por nome de campo de PDF e valor a preencher. Use o método getDocumentFields() para obter a lista de campos disponíveis.
    sysId Cadeia de caracteres Sys_id de um PDF na tabela Anexos [sys_attachment].
    tableName Cadeia de caracteres Nome da tabela que contém o registro ao qual o PDF está anexado. Você pode encontrar este valor na mesma linha do anexo listado na tabela Anexos [sys_attachment].
    tableSysId Cadeia de caracteres Sys_id do registro ao qual o PDF está anexado. Você pode encontrar este valor na mesma linha do anexo listado na tabela Anexos [sys_attachment].
    pdfName Cadeia de caracteres Nome a ser fornecido ao PDF.

    Padrão: Sys_id do PDF na tabela Anexos [sys_attachment].

    nivelar Objeto Opcional. O nivelamento de campos permite o bloqueio dos campos para que outros usuários não possam alterar as informações. Especifique a chave como "FlatenType" e forneça uma opção de nivelamento como uma cadeia de caracteres.
    Valores válidos:
    • donot_flatten: não nivela nenhum campo.
    • parcialmente_flatten: nivela somente os campos que foram modificados.
    • full_flatten: nivela todos os campos.

    Padrão: full_flaten

    {
      "FlattenType": "String" 
    }
    Tabela 6. Retorna
    Tipo Descrição
    Objeto Objeto que contém sys_id do anexo de PDF atualizado, se bem-sucedido, caso contrário, mensagem de erro.
    {
      "attachment_id": "String",
      "message": "String",
      "status": "String"
    }
    <Object>.​attachment_id Se a operação for bem-sucedida, sys_id do PDF preenchido. O arquivo está listado na tabela Anexos [sys_attachment].

    Tipo de dados: cadeia de caracteres

    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores válidos:
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • Dado registro de destino [<tableName> -<targetTableSysId> ] não existe. – A tabela de destino sys_id não está na tabela fornecida. Certifique-se de incluir o nome da tabela correto para o registro.
    • Nenhum formulário associado ao pdf para preencher. attachmentSysId:<sys_id>
    • Não existem campos editáveis com os nomes especificados. Verifique e tente novamente. Nomes de campo:<field names>
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como preencher campos e nivelar um PDF editável.

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

    Saída:

    "attachment_id":"<sys_id>","message":"Request completed successfully.","status":"success"

    PDFGenerationAPI –fillDocumentFields(objeto fieldMap, cadeia de caracteres sysId, cadeia de caracteres tableName, cadeia de caracteres tableSysId, cadeia de caracteres pdfName)

    preenche os campos em um PDF editável e o anexa ao registro fornecido.

    Use os seguintes métodos para determinar se o PDF pode ser preenchido e obter informações de campo:
    A PDFGenerationAPI fornece métodos de preenchimento adicionais com diferentes opções:
    Tabela 7. Parâmetros
    Nome Tipo Descrição
    camposMapa Objeto Opcional. Mapa de valor de chave por nome de campo de PDF e valor a preencher. Use o método getDocumentFields() para obter a lista de campos disponíveis.
    sysId Cadeia de caracteres Sys_id de um PDF na tabela Anexos [sys_attachment].
    tableName Cadeia de caracteres Nome da tabela que contém o registro ao qual o PDF está anexado. Você pode encontrar este valor na mesma linha do anexo listado na tabela Anexos [sys_attachment].
    tableSysId Cadeia de caracteres Sys_id do registro ao qual o PDF está anexado. Você pode encontrar este valor na mesma linha do anexo listado na tabela Anexos [sys_attachment].
    pdfName Cadeia de caracteres Nome a ser fornecido ao PDF.

    Padrão: Sys_id do PDF na tabela Anexos [sys_attachment].

    Tabela 8. Retorna
    Tipo Descrição
    Objeto Objeto que contém sys_id do anexo de PDF atualizado, se bem-sucedido, caso contrário, mensagem de erro.
    {
      "attachment_id": "String",
      "message": "String",
      "status": "String"
    }
    <Object>.​attachment_id Se a operação for bem-sucedida, sys_id do PDF preenchido. O arquivo está listado na tabela Anexos [sys_attachment].

    Tipo de dados: cadeia de caracteres

    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores válidos:
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • Dado registro de destino [<tableName> -<targetTableSysId> ] não existe. – A tabela de destino sys_id não está na tabela fornecida. Certifique-se de incluir o nome da tabela correto para o registro.
    • Nenhum formulário associado ao pdf para preencher. attachmentSysId:<sys_id>
    • Não existem campos editáveis com os nomes especificados. Verifique e tente novamente. Nomes de campo:<field names>
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como preencher campos em um PDF editável.

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

    Saída:

    {"attachment_id":"<sys_id>","message":"Request completed successfully.","status":"success"}

    PDFGenerationAPI –fillFieldsAndMergeSignature(objeto fieldMap, cadeia de caracteres sysId, cadeia de caracteres tableName, cadeia de caracteres tableSysId, cadeia de caracteres pdfName, solicitante de PdfMergeSignRequestor, nivelador de objeto)

    preenche campos em um PDF editável, adiciona imagem de assinatura, nivela os campos de dados e os anexa ao registro fornecido.

    Use os seguintes métodos para determinar se o PDF pode ser preenchido e obter informações de campo:
    A PDFGenerationAPI fornece métodos de preenchimento adicionais com diferentes opções:
    Tabela 9. Parâmetros
    Nome Tipo Descrição
    camposMapa Objeto Opcional. Mapa de valor de chave por nome de campo de PDF e valor a preencher. Use o método getDocumentFields() para obter a lista de campos disponíveis.
    sysId Cadeia de caracteres Sys_id de um PDF na tabela Anexos [sys_attachment].
    tableName Cadeia de caracteres Nome da tabela que contém o registro ao qual o PDF está anexado. Você pode encontrar este valor na mesma linha do anexo listado na tabela Anexos [sys_attachment].
    tableSysId Cadeia de caracteres Sys_id do registro ao qual o PDF está anexado. Você pode encontrar este valor na mesma linha do anexo listado na tabela Anexos [sys_attachment].
    pdfName Cadeia de caracteres Nome a ser fornecido ao PDF.

    Padrão: Sys_id do PDF na tabela Anexos [sys_attachment].

    solicitante Solicitante de PDFMergeSign​ Entrada de assinatura retornada de pdfMergeSignRequestor.
    nivelar Objeto Opcional. O nivelamento de campos permite o bloqueio dos campos para que outros usuários não possam alterar as informações. Especifique a chave como "FlatenType" e forneça uma opção de nivelamento como uma cadeia de caracteres.
    Valores válidos:
    • donot_flatten: não nivela nenhum campo.
    • parcialmente_flatten: nivela somente os campos que foram modificados.
    • full_flatten: nivela todos os campos.

    Padrão: full_flaten

    {
      "FlattenType": "String" 
    }
    Tabela 10. Retorna
    Tipo Descrição
    Objeto Objeto que contém sys_id do anexo de PDF atualizado, se bem-sucedido, caso contrário, mensagem de erro.
    {
      "attachment_id": "String",
      "message": "String",
      "status": "String"
    }
    <Object>.​attachment_id Se a operação for bem-sucedida, sys_id do PDF preenchido. O arquivo está listado na tabela Anexos [sys_attachment].

    Tipo de dados: cadeia de caracteres

    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores válidos:
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • Dado registro de destino [<tableName> -<targetTableSysId> ] não existe. – A tabela de destino sys_id não está na tabela fornecida. Certifique-se de incluir o nome da tabela correto para o registro.
    • Nenhum formulário associado ao pdf para preencher. attachmentSysId:<sys_id>
    • Não existem campos editáveis com os nomes especificados. Verifique e tente novamente. Nomes de campo:<field names>
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como preencher campos com assinatura com configurações padrão para nivelar completamente os campos.

    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));
    Saída:
    {"attachment_id":"5440d993dbed3010d66be1191396194e","message":"Request completed successfully.","status":"success"}

    PDFGenerationAPI – getDocumentFields(cadeia de caracteres sysId)

    Obtém uma lista de campos editáveis em um documento PDF. Habilita a listagem de campos de PDF editáveis sem abrir manualmente o arquivo para verificação.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    sysId Cadeia de caracteres Sys_id de um PDF na tabela Anexos [sys_attachment].
    Tabela 12. Retorna
    Tipo Descrição
    Objeto Objeto que contém o ID do PDF assinado, caso contrário, mensagem de erro.
    {
      "attachment_id": "String",
      "message": "String",
      "status": "String"
    }
    <Object>.campos Se a solicitação for bem-sucedida, listará contendo o nome de cada campo no PDF.

    Tipo de dados: matriz de cadeias de caracteres

    "fields": ["field_name"]
    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores possíveis:
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como recuperar campos em um anexo de PDF.

    var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
    var result = v.getDocumentFields("attachmentSysId");
    gs.info(JSON.stringify(result));
    

    Saída:

    {"message":"Request completed successfully.","fields":["NP_formFillable","reset","print","1SSN","Signature.1","5sigDate","Check Box21"],"status":"success"}

    PDFGenerationAPI – getDocumentFieldsType(cadeia de caracteres sysId)

    Obtém o tipo de campo do conjunto de campos editáveis de um documento PDF.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    sysId Cadeia de caracteres Sys_id de um PDF na tabela Anexos [sys_attachment].
    Tabela 14. Retorna
    Tipo Descrição
    Objeto Objeto que contém cada tipo de campo de PDF, se bem-sucedido, caso contrário, mensagem de erro.
    {
      "fields_type": {Object},
      "message": "String",
      "status": "String"
    }
    <Object>.fields_type Objeto que lista cada campo no PDF especificado, se bem-sucedido, caso contrário, mensagem de erro.

    Tipo de dados: objeto

    "fields_type": {
      "<field type>": {Object},
    }
    <Object>.fields_type.​<field> Objeto que contém o número de página de cada campo. O<field> O nome representa o rótulo do campo, por exemplo, "SSN" ou um rótulo automatizado que representa o tipo.

    Tipo de dados: objeto

    "<field>": { 
      "fieldsDetails": [Array], // Check boxes, radio buttons, choice boxes only
      "pageNumber": "String",
      "type": "String"
    }
    <Object>.fields_type.​<field> .fieldsDetails Lista de objetos que contêm o nome do campo e o valor correspondente de cada opção para os tipos de campo de escolha.
    Tipos aplicáveis:
    • Caixa de seleção
    • Caixa de seleção
    • Caixa de combinação
    • Caixa de seleção múltipla

    Tipo de dados: matriz

    "fieldsDetails": [ 
      "fieldName": "String",
      "value": "String"
    ]
    <Object>.fields_type.​<field> .fieldsDetails.fieldName Nome de um campo de opção.

    Tipo de dados: cadeia de caracteres

    <Object>.fields_type.​<field> .fieldsDetails.value Valor de um campo de opção.

    Tipo de dados: cadeia de caracteres

    <Object>.fields_type.​<field> .pageNumber Número da página do PDF correspondente a este campo.

    Tipo de dados: cadeia de caracteres

    <Object>.fields_type.​<field> .type Tipo de campo PDF.
    Valores possíveis:
    • check_box
    • escolha_caixa
    • combo_box
    • caixa_de_escolha_múltipla
    • push_button
    • radio_button
    • assinatura
    • texto

    Tipo de dados: cadeia de caracteres

    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores possíveis:
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como recuperar tipos de campo em um anexo de PDF. Os resultados incluem retornos manuais para facilitar a leitura e são truncados para abreviar.

    var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
    var result = v.getDocumentFieldsType("<attachmentSysId>");
    gs.info(JSON.stringify(result));
    

    Saída:

    {"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 do objeto, sysId da cadeia de caracteres, solicitante do PdfMergeSignRequestor, nivelamento do objeto)

    preenche campos em um PDF editável, cria uma imagem e a converte em um PDF codificado em Base64.

    A codificação Base64 permite que você gere um PDF como uma cadeia de caracteres em um documento de texto, como HTML ou JSON, sem prejudicar a sintaxe do caractere binário.

    Use os seguintes métodos para determinar se o PDF pode ser preenchido e obter informações de campo:
    A PDFGenerationAPI fornece métodos de preenchimento adicionais com diferentes opções:
    • fillDocumentFields()preenche os campos em um PDF editável e o anexa ao registro fornecido.
    • fillDocumentFieldsAndFlatter()preenche os campos em um PDF editável, nivela os campos de dados e os anexa ao registro fornecido.
    • fillFieldsAndMergeSignature()preenche campos em um PDF editável, adiciona imagem de assinatura, nivela os campos de dados e os anexa ao registro fornecido.
    Tabela 15. Parâmetros
    Nome Tipo Descrição
    camposMapa Objeto Opcional. Mapa de valor de chave por nome de campo de PDF e valor a preencher. Use o método getDocumentFields() para obter a lista de campos disponíveis.
    sysId Cadeia de caracteres Sys_id de um PDF na tabela Anexos [sys_attachment].
    solicitante Solicitante de PDFMergeSign​ Entrada de assinatura retornada de pdfMergeSignRequestor.
    nivelar Objeto Opcional. O nivelamento de campos permite o bloqueio dos campos para que outros usuários não possam alterar as informações. Especifique a chave como "FlatenType" e forneça uma opção de nivelamento como uma cadeia de caracteres.
    Valores válidos:
    • donot_flatten: não nivela nenhum campo.
    • parcialmente_flatten: nivela somente os campos que foram modificados.
    • full_flatten: nivela todos os campos.

    Padrão: full_flaten

    {
      "FlattenType": "String" 
    }
    Tabela 16. Retorna
    Tipo Descrição
    Cadeia de caracteres Se for bem-sucedido, o PDF convertido para o formato Base64 será adicionado à tabela Anexos [sys_attachment]. O conteúdo reflete o anexo de PDF fornecido com os campos e a assinatura preenchidos. Os campos não são editáveis, a menos que uma opção de nivelamento alternativa tenha sido fornecida com o parâmetro flatten.
    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores válidos:
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • Dado registro de destino [<tableName> -<targetTableSysId> ] não existe. – A tabela de destino sys_id não está na tabela fornecida. Certifique-se de incluir o nome da tabela correto para o registro.
    • Nenhum formulário associado ao pdf para preencher. attachmentSysId:<sys_id>
    • Não existem campos editáveis com os nomes especificados. Verifique e tente novamente. Nomes de campo:<field names>
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como carregar dois campos em um anexo de PDF, nivelar os campos e converter o PDF para o formato 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(cadeia de caracteres sysId)

    Obtém o tamanho da página de um documento PDF.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    sysId Cadeia de caracteres Sys_id de um PDF na tabela Anexos [sys_attachment].
    Tabela 18. Retorna
    Tipo Descrição
    Objeto Objeto que contém o tamanho de cada página, se bem-sucedido, caso contrário, mensagem de erro.
    {
      "pages_size": {Object},
      "message": "String",
      "status": "String"
    }
    <Object>.pages_size Se a operação for bem-sucedida, a largura e a altura de cada página do PDF em pontos. O número da página é retornado como uma cadeia de caracteres e os valores de medição são retornados como tipos de dados numéricos.

    Tipo de dados: objeto

    "pages_size": {"<page number>":[<width>,<height>]}
    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores possíveis:
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como exibir a largura e a altura de cada página em um anexo de PDF.

    var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
    var result = v.getPdfPageSizes ("<attachmentSysId>");
    gs.info(JSON.stringify(result));
    

    Saída:

    {"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(cadeia de caracteres sysId)

    Verifica se o documento PDF contém campos editáveis.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    sysId Cadeia de caracteres Sys_id de um PDF na tabela Anexos [sys_attachment].
    Tabela 20. Retorna
    Tipo Descrição
    Objeto Objeto que contém o tamanho de cada página, se bem-sucedido, caso contrário, mensagem de erro.
    {
      "document_editable": "String",
      "message": "String",
      "status": "String"
    }
    <Object>.​document_editable Se a operação for bem-sucedida, sinalizador indicando se o documento é editável.
    Valores válidos:
    • verdadeiro: o documento PDF tem campos editáveis.
    • falso: o documento PDF não tem campos editáveis.

    Tipo de dados: valor booliano fornecido como uma cadeia de caracteres

    <Object>.message Mensagem confirmando sucesso ou erro.
    Valores possíveis:
    • Exceção ao ler o conteúdo do documento de origem. Cabeçalho do PDF não encontrado. – O anexo de entrada fornecido não é um PDF válido. Forneça o sys_id correto do anexo.
    • A solicitação não pode prosseguir porque o anexo com sys_id [{0}] não passou na verificação de segurança – O PDF não passou na verificação antivírus.
    • A solicitação não pode prosseguir porque o anexo com o sys_id [{0}] está com verificação de segurança pendente. O PDF requer uma verificação antivírus.
    • Solicitação concluída com sucesso: a operação foi bem-sucedida.
    • Indefinido – o Sys_id fornecido não existe ou não é um anexo de PDF.

    Tipo de dados: cadeia de caracteres

    <Object>.status Status que indica se a operação foi bem-sucedida.
    Valores possíveis:
    • sucesso — A operação foi bem-sucedida.
    • falha: a operação não foi bem-sucedida. O message fornece detalhes.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como determinar se os campos do documento PDF são editáveis.

    var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
    var result = v.isDocumentFillable("<attachmentSysId>");
    gs.info(JSON.stringify(result));
    

    Saída:

    {"message":"Request completed successfully.","document_editable":"true","status":"success"}

    PDFGenerationAPI – PDFGenerationAPI()

    Instancia um novo objeto PDFGenerationAPI.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como criar um objeto PDFGenerationAPI.

    var v = new sn_pdfgeneratorutils.PDFGenerationAPI;