Document : Inclus dans le champ d’application, Global

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 10 minutes de lecture
  • L’API Document fournit des méthodes pour initialiser un PDF, ajouter du contenu et fermer le PDF. Après avoir ajouté du contenu, le document peut être joint à un enregistrement cible.

    Cette API fait partie du module d’extension ServiceNow PDF Generation Utilities (com.snc.apppdfgenerator) et est fournie dans l’espace de noms sn_pdfgeneratorutils . Le module d’extension est activé par défaut.

    Cette API dépend d’une suite de classes permettant de créer divers éléments composant un PDF.
    • CellulaireCrée un objet cellule en tant que cellule dans un tableau. Vous pouvez utiliser cette API pour mettre en forme la cellule et inclure des blocs supplémentaires, tels que des paragraphes et des images.
    • CouleurCrée un objet Couleur utilisé pour définir des attributs de couleur que vous pouvez appliquer aux éléments d’un PDF ; telles que les cellules, les tables et les lignes.
    • ImageCrée un objet Image représentant une image et sa mise en page est insérée dans un PDF. Active la définition d’attributs tels que l’échelle, l’alignement et la couleur de la bordure.
    • LigneCrée un objet Ligne à l’aide de méthodes pour tracer une ligne dans un PDF.
    • ParagrapheCrée un objet Paragraphe représentant un bloc de texte dans un PDF.
    • PdfPageCrée un objet PdfPage représentant une page PDF et ses attributs ; comme la taille, la largeur et la couleur.
    • StyleCrée un style pour définir des propriétés telles que la taille de la police, la bordure et l’alignement. Vous pouvez appliquer le même style à plusieurs objets simultanément.
    • TableauCrée un objet Table à ajouter à un document PDF. Définit les données à utiliser dans chaque cellule et définit les styles, les marges et l’alignement.

    L’exemple suivant montre comment créer un fichier PDF de base à l’aide de l’API Document et de plusieurs composants, tels qu’un tableau, une cellule et un paragraphe. Le résultat est une liste d’incidents de la table Incident [incident] répertoriée dans un PDF. Vous pouvez tester cet exemple dans votre instance si vous remplacez <sys_id> par le sys_id d’un enregistrement d’incident.

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

    La pièce jointe PDF est répertoriée dans le tableau Pièces jointes [sys_attachment].

    Exemple de PDF avec sortie sous forme de tableau à 2 colonnes répertoriant les numéros d’incident et leur description.

    Document : Document(PdfPageSize)

    Instancie un objet Document et génère un document PDF.

    Tableau 1. Paramètres
    Nom Type Description
    pageSize Page PDF Taille de page PDF.
    Tableau 2. Renvoie
    Type Description
    Objet Document PDF.

    L’exemple suivant montre comment créer un objet Document et renvoyer un PDF.

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

    Document : addAndStartNewPage()

    Ajoute une page au document en terminant la page actuelle et en en créant une nouvelle.

    Méthodes supplémentaires pour ajouter une nouvelle page dans un document :
    • addNewPage()Ajoute une nouvelle page vierge au document. Utilisez cette option pour forcer un saut de page au début d’un nouveau chapitre ou d’une nouvelle section dans votre document.
    • addNewPageAtIndex()Ajoute une nouvelle page à l’index spécifié du document. Par exemple, définir l’index sur 6 insère une page six ou insère la page à la position de la page six existante dans un document. La page six originale devient la page sept.
    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter une nouvelle page à un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : addAuthor(auteur de chaîne)

    Ajoute un nom au champ Auteur dans les propriétés du document PDF.

    Tableau 5. Paramètres
    Nom Type Description
    auteur Chaîne Nom de l’auteur du document.
    Tableau 6. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter un nom au champ Auteur dans les propriétés d’un document PDF. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : addImage(Image de l’image)

    Ajoute une image à un document.

    Tableau 7. Paramètres
    Nom Type Description
    image Image Image à ajouter à un document.
    Tableau 8. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter une image à un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : addNewLine()

    Ajoute une nouvelle ligne vide au document.

    Tableau 9. Paramètres
    Nom Type Description
    Aucun
    Tableau 10. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter une nouvelle ligne à un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : addNewPage()

    Ajoute une nouvelle page vierge au document. Utilisez cette option pour forcer un saut de page au début d’un nouveau chapitre ou d’une nouvelle section dans votre document.

    Méthodes supplémentaires pour ajouter une nouvelle page dans un document :
    • addAndStartNewPage()Ajoute une page au document en terminant la page actuelle et en en créant une nouvelle.
    • addNewPageAtIndex()Ajoute une nouvelle page à l’index spécifié du document. Par exemple, définir l’index sur 6 insère une page six ou insère la page à la position de la page six existante dans un document. La page six originale devient la page sept.
    Tableau 11. Paramètres
    Nom Type Description
    Aucun
    Tableau 12. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter une nouvelle page vierge à un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : addNewPageAtIndex(index numérique)

    Ajoute une nouvelle page à l’index spécifié du document. Par exemple, définir l’index sur 6 insère une page six ou insère la page à la position de la page six existante dans un document. La page six originale devient la page sept.

    Méthodes supplémentaires pour ajouter une nouvelle page dans un document :
    • addAndStartNewPage()Ajoute une page au document en terminant la page actuelle et en en créant une nouvelle.
    • addNewPage()Ajoute une nouvelle page vierge au document. Utilisez cette option pour forcer un saut de page au début d’un nouveau chapitre ou d’une nouvelle section dans votre document.
    Tableau 13. Paramètres
    Nom Type Description
    Index Numéro Position à laquelle insérer une nouvelle page.
    Tableau 14. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter une nouvelle page PDF à la position 6 d’un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : addParagraph(Paragraphe paragraphe)

    Ajoute un paragraphe à un document.

    Tableau 15. Paramètres
    Nom Type Description
    paragraphe Paragraphe Bloc de texte fourni en tant qu’objet de paragraphe.
    Tableau 16. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter un paragraphe à un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

    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 de table)

    Ajoute une table à un document.

    Tableau 17. Paramètres
    Nom Type Description
    Table Table Table à insérer dans le document.
    Tableau 18. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment ajouter une table à un document. Consultez l’API de table pour plus de détails sur la définition d’une table. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document – close()

    Ferme un document.

    Tableau 19. Paramètres
    Nom Type Description
    Aucun
    Tableau 20. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment fermer un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document – createDocument(PdfPageSize)

    Crée un document avec la taille de page spécifiée.

    Tableau 21. Paramètres
    Nom Type Description
    pageSize Page PDF Taille de la page du document.
    Tableau 22. Renvoie
    Type Description
    Objet Document PDF.

    L’exemple suivant montre comment créer un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : getPageCount()

    Obtient le nombre de pages du document.

    Tableau 23. Paramètres
    Nom Type Description
    Aucun
    Tableau 24. Renvoie
    Type Description
    Numéro Nombre de pages dans le document.

    L’exemple suivant montre comment obtenir le nombre de pages d’un document de neuf pages. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Sortie :

    The number of pages is 9

    Document – getPageSize()

    Obtient la taille de page par défaut du document.

    Tableau 25. Paramètres
    Nom Type Description
    Aucun
    Tableau 26. Renvoie
    Type Description
    Chaîne Valeur de la taille de page par défaut définie à l’aide de l’API PdfPage .
    Valeurs possibles :
    • A4 – 595 x 842 points
    • EXÉCUTIF – 522 x 756 points
    • LETTRE – 612 x 792 points
    • GRAND LIVRE – 792 x 1224 points

    L’exemple suivant montre comment obtenir la taille de page d’un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : isClosed()

    Indique si un document est fermé ou ouvert.

    Tableau 27. Paramètres
    Nom Type Description
    Aucun
    Tableau 28. Renvoie
    Type Description
    Aucun Marqueur indiquant si un document est ouvert ou fermé.
    Valeurs valides :
    • vrai : le document est fermé.
    • faux : le document est ouvert.

    Par défaut : true

    L’exemple suivant montre comment obtenir la taille de page d’un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : saveAsAttachment(String tableName, String tableSysId, String fileName)

    Joint le fichier de document à la table cible spécifiée.

    Tableau 29. Paramètres
    Nom Type Description
    tableName Chaîne Nom de la table à laquelle joindre le document.
    tableSysId Chaîne Sys_id de l’enregistrement auquel joindre le document.
    fileName Chaîne Nom du document à joindre.
    Tableau 30. Renvoie
    Type Description
    Chaîne Sys_id du document joint dans la table Pièces jointes [sys_attachment].

    L’exemple suivant montre comment joindre un document à un enregistrement d’incident. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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

    Document : setBaseDirection (direction de la chaîne)

    Définit le sens du flux de texte de base à réorganiser en fonction de la reconnaissance de caractères

    Tableau 31. Paramètres
    Nom Type Description
    direction Chaîne Direction du flux de texte.
    Valeurs valides :
    • LEFT_TO_RIGHT : le texte de l’ordre circule de gauche à droite. L’orientation du texte n’est réorganisée que si des caractères de gauche à droite sont détectés.
    • RIGHT_TO_LEFT : le texte de l’ordre circule de droite à gauche. L’orientation du texte n’est réorganisée que si des caractères de langue de droite à gauche sont détectés.

    Par défaut : LEFT_TO_RIGHT

    Tableau 32. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment définir le flux de texte de gauche à droite. Pour obtenir un exemple d’utilisation de document, consultez API de document .

    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, Number leftMargin)

    Définit les tailles de marge de page dans le document.

    Tableau 33. Paramètres
    Nom Type Description
    topMargin Numéro Hauteur de la marge supérieure en points.
    Marge droite Numéro Largeur de la marge de droite en points.
    bottomMargin Numéro Hauteur de la marge inférieure en points.
    marge gauche Numéro Largeur de la marge de gauche en points.
    Tableau 34. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment définir les marges de page dans un document. Pour obtenir un exemple d’utilisation de document, consultez API de document .

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