Bonjour

J'ai un gros soucis que je n'arrive pas à résoudre.

Je maintient une site en ASP/VB script et on vient de me demander d'y ajouter la possibilité de sortir des liste en pdf.

J'ai donc rechercher un outil qui me permettrait de faire ça et je suis tombé sur fpdf qui fonctionne très bien sauf que...parfois je j'ai mon pdf et parfois non. A force de tâtonnement divers et variés, j'ai trouvé où le bât blesse.

La bonne nouvelle et que quel que soit les données que je demande, le fichier pdf est bien créé sur le serveur. Le problème intervient au moment de l'envoi avec l'objet Response. Voici le code incriminé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
	//xfile=Server.MapPath(lib.fso.GetTempName())
	xfile=Server.MapPath("ProductPartsList.pdf")
	xf=lib.fopen(xfile,"wb");
	if(xf.number)this.Error("Unable to create output file: " + xfile);
	lib.fwrite(xf,this.buffer);
	lib.fclose(xf);
 
	//Response.Write(xfile);Response.End;
	Response.WriteFile(xfile);
 
	//outB = Server.CreateObject("ADODB.Stream");
	//outB.Type = 1;
	//outB.Open();
 
	//outB.LoadFromFile (xfile);
	//Response.BinaryWrite(outB.Read());
	//outB.Close();
 
	lib.fso.DeleteFile(xfile);
Je l'ai modifié pour essayer de le faire fonctionner mais rien y fait. Voici l'original :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
	xfile=Server.MapPath(lib.fso.GetTempName())
	xf=lib.fopen(xfile,"wb");
	if(xf.number)this.Error("Unable to create output file: " + xfile);
	lib.fwrite(xf,this.buffer);
	lib.fclose(xf);
 
	outB = Server.CreateObject("ADODB.Stream");
	outB.Type = 1;
	outB.Open();
 
	outB.LoadFromFile (xfile);
	Response.BinaryWrite(outB.Read());
	outB.Close();
 
	lib.fso.DeleteFile(xfile);
L'erreur se produit au moment du Response.BinaryWrite (ou du Response.WriteFile pour ma version modifier), sur certains fichiers, il me renvoit un File not found, alors que le fichier est bien là. En plus, il écrit depuis un stream créé à partir du LoadFromFile qui lui marche sans problème.

Je devient chèvre sur ce coup là. Si quelqu'un peut m'aiguiller, se serait sympa.