Posts Tagged ‘ods layout’

h1

Composer une page pdf avec des carrés à remplir (ODS LAYOUT/ODS REGION)

juin 14, 2009

La syntaxe de l’ODS PDF sous SAS sert à la création d’un fichier au format pdf. Ici, vous verrez comment organiser les différents blocs de textes au moyen de ODS LAYOUT et ODS REGION. Cela sera aussi l’occasion de faire un rappel sur PROC TEMPLATE pour changer les marges d’un document et de se servir de l’instruction ODS PDF TEXT=.

1.Changer les valeurs par défaut

Par défaut, les sorties sous SAS affichent la date, un titre et chaque page est numérotée. Pour enlever ces informations, l’instruction TITLE et les options NODATE, NONUMBER sont utilisées.

* 1. Setting;
options nodate nonumber;
title;

Par défaut, les marges des feuilles A4 ne sont pas de zéro. Pour les changer, il faut utiliser un style différent à définir dans une procéduren PROC TEMPLATE. Ici, nous créons un style appelé REPORT_PDF qui est comme le style RTF de SAS à une exception prêt : les marges du document sont de zéro centimètre.

*2. Créer le template REPORT_PDF;
proc template;
define style styles.report_pdf;
parent=styles.rtf;
style body from Document /
bottommargin = 0cm
topmargin    = 0cm
rightmargin  = 0cm
leftmargin   = 0cm;
end;
run;

Note : vous pouvez aussi choisir de rendre non défini les marges au niveau du proc template dans un premier temps. Ensuite, vous pourrez définir la valeur dans une instruction globale OPTIONS.

proc template;
define style styles.report_pdf;
parent=styles.rtf;
style body from Document /
bottommargin = _undef_
topmargin    =
_undef_
rightmargin  = _undef_
leftmargin   = _undef_;
end;
run;

options bottommargin=0cm topmargin=0cm rightmargin=0cm leftmargin=0cm;

Ici, j’ai choisi d’ajouter manuellement du texte au moyen de l’ODS PDF TEXT dans le fichier PDF pour illustrer l’usage d’ODS LAYOUT/ODS REGION. Au niveau de PROC TEMPLATE, il est possible de préciser la police de caractère et la taille. Ici je choisi une police Arial de taille 12pt.

proc template;
define style styles.report_pdf;
parent=styles.rtf;
style body from Document /
bottommargin = 0cm
topmargin    = 0cm
rightmargin  = 0cm
leftmargin    = 0cm;
style usertext from usertext /
font_size = 12pt
font_face = ‘Arial’;
end;
run;

2. Créer le fichier

a. ODS LISTING : Stopper l’envoi dans la fenêtre OUTPUT et réactiver cette destination à la fin

ods listing close;
ods listing;

b. ODS PDF :  Envoyer les résultats à venir dans un fichier PDF, appeler le style REPORT_PDF pour ne pas utiliser le style par défaut et stopper la destination en fin de programme.

ods pdf file=‘C:/sasref/ods_layout.pdf’ style=report_pdf;
ods pdf close;

c. ODS LAYOUT : Indiquer à SAS l’endroit où ODS REGION pourra être utilisé en précisant le début de la zone avec ODS LAYOUT START et la fin avec ODS LAYOUT END .

ods layout start;
ods layout end;

4. ODS REGION : préciser le point de départ du cadre avec X= et Y=. Puis donner la largeur (width) et la hauteur (height) du cadre.

ods region x=1cm y=1cm width=7cm height=2cm;
ods region x=13cm y=3cm width=7cm height=2cm;
ods region x=1cm y=5cm width=15cm height=1cm;
ods region x=4cm y=7cm width=15cm height=19cm;

Le code complète

ods listing close;
ods pdf file=‘C:/sasref/ods_layout.pdf’ style=report_pdf;
ods layout start;
*cadre 1 : adresse expéditeur;
ods region x=1cm y=1cm width=7cm height=2cm;
ods pdf text=‘Véronique Bourcier’;
ods pdf text=‘verronique.bourcier@sasreference.fr’;
ods pdf text=‘www.sasreference.fr’;
ods pdf text=‘Blog pour se former au logiciel SAS’;
*cadre 2 : adresse destinaire + date;
ods region x=13cm y=3cm width=7cm height=2cm;
ods pdf text=‘Lecteurs de SAS’;
ods pdf text=‘Rue des curieux’;
ods pdf text=‘00000 Francophones’;
ods pdf text=’ ‘;
ods pdf text=’14 Juin 2009, Cologne’;
*cadre 3 : object;
ods region x=1cm y=5cm width=15cm height=1cm;
ods pdf text=‘Objet: Exemple avec ODS LAYOUT/REGION’;
*cadre 4 : contenu de la lettre;
ods region x=4cm y=7cm width=15cm height=19cm;
ods pdf text=‘Madame, Monsieur’;
ods pdf text=‘ ‘;
ods pdf text=« Le blog http://www.sasreference.fr est votre outil pour découvrir et redécouvrir la syntaxe de SAS. C’est aussi une communauté d’utilisateurs se retrouvant sur Facebook pour échanger sur de multiples thématiques : »;
ods pdf text=‘ ‘;
ods pdf text=‘+ Certification SAS’;
ods pdf text=‘+ Mémoire de stage’;
ods pdf text=‘+ Pharmaceutique’;
ods pdf text=‘+ Banque/assurance’;
ods pdf text=‘+ Milieu hospitalier’;
ods pdf text=‘+ Statistiques publiques’;
ods pdf text=‘+ Recherche’;
ods pdf text=‘+ Enseignement’;
ods pdf text=‘etc. ‘;
ods layout end;
ods pdf close;
ods listing;

3. Voir le résultat

ods_layout_letter

Lectures complémentaires