Créer des fichier PDF depuis une procédure stockée
Techniques
Techniques / PDF : Créer un PDF depuis une procédure stockée
Original version from Masar Ivica - Visiter nos sponsors
Partie II : Lancer la procédure et générer le fichier PDF à la volée
- Objet:
Cet article met en oeuvre une technique un peu particulière afin de créer un fichier PDF à partir d'une procédure stockée. Il montre comment écrire cette dernière et comment l'appeler directement depuis ASP ou en ligne depuis SQL Server.
La procédure stockée aisément modifiable permet soit de générer un fichier sur le disque soit d'en renvoyer le contenu sous la forme d'un flux binaire au navigateur client depuis ASP. Le document généré en lui même est un simple rapport présentant des données sur une colonne.
Cette technique qui peut être étendue pour des exports d'informations depuis la base de données permet de ne pas avoir recours à des outils externes ou des librairies (et les prix exorbitants qui vont avec)
- Comment appeler la procédure stockée depuis ASP avec ADO :
La procédure stockée est appelée SQL2PDF. Afin de l'exécuter depuis ASP la méthode la plus simple mais pas forcément la meilleure est de créer une connexion à la base de données et ensuite d'appeler la méthode Execute de l'objet Connection ainsi créé, comme dans l'exemple suivant :
'l'argument de la procédure stockée
filename = "myPDF"
'Création de l'objet ADODB Connection
Set cn = Server.CreateObject("ADODB.Connection")
'Ouvrir la base avec l'objet créé
cn.Open "data source name", "userid", "password"
'Executer la procédure afin de générer
'le fichier PDF sans utiliser d'argument
'cn.Execute("SQL2PDF")
'La même chose en passant un argument
' à la procédure:
cn.Execute("SQL2PDF '" & filename & "'")
cn.Close
'Nettoage de la mémoire
Set cn = Nothing
SQL2PDF permet de créer un fichier PDF à partir du texte insérer dans la table suivante : psopdf ( nvarchar(80) ).
Il nous faut donc commencer par créer celle-ci :
CREATE TABLE psopdf (code NVARCHAR(80))
Nous pouvons mainenant créer la procédure stockée SQL2PDF.
Ensuite la table psopdf devra être remplie avec les données que nous désirons voir apparaître dans notre fichier comme le montre les exemples qui suivent.
A la fin la procédure est appelée en fournissant comme argument le nom du fichier à générer sans préciser l'extention de celui-ci (.pdf).
Voici le script permettant de créer la procédure SQL2PDF :
Lancer la procédure et générer un fichier PDF à la volée