Je produis avec ODS HTML des pages Web que je désire ensuite pouvoir imprimer. Mais les tableaux produits sont trop larges, et l’ODS HTML ne tient pas compte de l’option LINESIZE (LS) pour dimensionner les tableaux… Que faire ?
Malheureusement, le HTML est un langage sourd aux considérations bassement matérielles d’impression. Je ne connais aucun moyen, depuis SAS, pour le forcer à respecter des largeurs de pages données, puisque dans un navigateur Internet, on a toujours la possibilité d’un ascenseur horizontal si le texte est trop large.
Seule solution envisageable : construire des documents Word (ODS RTF), qui sont sensibles à vos options LS et PS (et qui acceptent aussi des contraintes sur les marges définies avec une PROC TEMPLATE), et les convertir ensuite. On peut demander à SAS de piloter Word pour cette opération de conversion, comme dans l’exemple ci-dessous (attention, ne fonctionnera pas avec SAS Enterprise Guide)…
ods rtf body = "c:\temp\essai.doc" ; proc print data = grosse.table ; run ; ods rtf close ; options noxwait ; x "start winword" ; DATA _null_ ; BIDON = sleep(10) ; /* attente de l'ouverture de Word */ RUN ; filename word DDE "winword|system" ; DATA _null_ ; FILE word ; PUT '[FileOpen .name="C:\temp\essai.doc"]' ; /* ouverture du document Word */ PUT '[FileSaveAs .Name="essai.htm" .Format=wdFormatHTML]' ; /* enregistrement au format HTML */ PUT '[FileExit 1]' ; /* fermeture de Word */ RUN ;