Document - Champ d’application, Global

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 10 minutes de lecture
  • L’API Document fournit des méthodes permettant d’initialiser un PDF, d’ajouter du contenu et de 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 pour construire divers éléments composant un PDF.
    • CelluleCrée un objet Cell sous forme de cellule dans une table. 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 Color utilisé pour définir les attributs de couleur que vous pouvez appliquer aux éléments d’un PDF ; tels que les cellules, les tableaux et les lignes.
    • L’imageCrée un objet Image représentant une image et son insertion de mise en page dans un PDF. Permet de définir des attributs tels que l’échelle, l’alignement et la couleur de la bordure.
    • Graphique linéaireCré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.
    • Page PDFCrée un objet PdfPage représentant une page PDF et ses attributs ; tels que la taille, la largeur et la couleur.
    • Le styleCrée un style pour définir des propriétés telles que la taille de 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 PDF de base à l’aide de l’API Document et de plusieurs composants, tels qu’un tableau, une cellule et un paragraphe. Il en résulte une liste d’incidents de la table Incident [incident] répertoriés au format 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 la table Pièces jointes [sys_attachment].

    Exemple de PDF avec sortie sous forme de tableau à 2 colonnes répertoriant les numéros et les descriptions des incidents.

    Document - Document(PdfPagePageSize)

    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 de votre document.
    • addNewPageAtIndex()Ajoute une nouvelle page à l’index spécifié du document. Par exemple, si vous définissez l’index sur 6, vous insérez une page six ou la page à la position de la page six existante dans un document. La page six d’origine devient la page sept.
    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment ajouter une nouvelle page à un document. Pour obtenir un exemple d’utilisation de document, consultez API 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(String author)

    Ajoute un nom au champ auteur dans les propriétés des documents PDF.

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

    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 Document .

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

    Document – addImage(Image image)

    Ajoute une image à un document.

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

    L’exemple suivant montre comment ajouter une image à un document. Pour obtenir un exemple d’utilisation de document, consultez API 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
    Néant

    L’exemple suivant montre comment ajouter une nouvelle ligne à un document. Pour obtenir un exemple d’utilisation de document, consultez API 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 de 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, si vous définissez l’index sur 6, vous insérez une page six ou la page à la position de la page six existante dans un document. La page six d’origine devient la page sept.
    Tableau 11. Paramètres
    Nom Type Description
    Aucun
    Tableau 12. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment ajouter une nouvelle page vierge à un document. Pour obtenir un exemple d’utilisation de document, consultez API 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, si vous définissez l’index sur 6, vous insérez une page six ou la page à la position de la page six existante dans un document. La page six d’origine 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 de votre document.
    Tableau 13. Paramètres
    Nom Type Description
    Index Numéro Position à laquelle insérer une nouvelle page.
    Tableau 14. Renvoie
    Type Description
    Néant

    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 Document .

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

    Document – addParagraph(Paragraph paragraph)

    Ajouter 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
    Néant

    L’exemple suivant montre comment ajouter un paragraphe à un document. Pour obtenir un exemple d’utilisation de document, consultez API 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
    Néant

    L’exemple suivant montre comment ajouter une table à un document. Voir l’API de table pour plus de détails sur la façon de définir une table. Pour obtenir un exemple d’utilisation de document, consultez API 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
    Néant

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

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

    Document – createDocument(PdfPagepageSize)

    Crée un document avec le format de page spécifié.

    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 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 du 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 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 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
    Néant Marqueur indiquant si un document est ouvert ou fermé.
    Valeurs valides :
    • true : le document est fermé.
    • false : le document est ouvert.

    Valeur 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 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 du 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 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 la direction du flux de texte de base à partir de laquelle 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 : Classez le flux de texte de gauche à droite. Le sens du texte n’est réorganisé que si des caractères de langue de gauche à droite sont détectés.
    • RIGHT_TO_LEFT : Classez le flux de texte de droite à gauche. Le sens du texte n’est réorganisé que si des caractères de langue s’écrivant de droite à gauche sont détectés.

    Valeur par défaut : LEFT_TO_RIGHT

    Tableau 32. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment définir le flux de texte de gauche à droite. Pour obtenir un exemple d’utilisation de document, consultez API 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 dimensions des marges de page dans le document.

    Tableau 33. Paramètres
    Nom Type Description
    Marge supérieure Numéro Hauteur de la marge supérieure en points.
    Marge droite Numéro Largeur de la marge de droite en points.
    Marge inférieure 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
    Néant

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

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