bonjour...
je voudrais savoir comment executer une ligne de commande sous C#.
je travaille avec FOP pour avoir des Fichiers PDF.
voici ma commande :
c:\fop...
FOP -XML myfile.xml -XSL mysheat.xsl -pdf myresult.pdf
merci pour votre aide
bonjour...
je voudrais savoir comment executer une ligne de commande sous C#.
je travaille avec FOP pour avoir des Fichiers PDF.
voici ma commande :
c:\fop...
FOP -XML myfile.xml -XSL mysheat.xsl -pdf myresult.pdf
merci pour votre aide
il faut utiliser la class Process (dans System.Diagnostics)
fais une recherche dans le forum, il y a plein d'exemples
Si, en utilisant ProcessStartInfo.RedirectStandardOutput, et l'évènement OutputDataReceived du process
SVP j'ai juste une petite question :
y une erreur au niveau de mode code
pkoi il reconnait pas Server.MapPath("\\donnees.fo") dans cette commande.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.EnableRaisingEvents=false; proc.StartInfo.FileName = "C:\\fop-0.95beta\\FOP"; proc.StartInfo.Arguments = "-xml Server.MapPath("\\donnees.fo") - xsl Server.MapPath("\\feuille.xsl") - pdf Server.MapPath("\\resultat.pdf")"; proc.Start(); proc.WaitForExit();
merci bien
Les guillemets servent à délimiter une chaîne de caractères. Si tu as des guillemets dans un chaîne de caractères tu dois les échapper
Code : Sélectionner tout - Visualiser dans une fenêtre à part proc.StartInfo.Arguments = "-xml Server.MapPath(\"\\donnees.fo\") - xsl Server.MapPath(\"\\feuille.xsl\") - pdf Server.MapPath(\"\\resultat.pdf\")";
+1 mais autant utiliser :
tarekos prete attention au message se storminon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part proc.StartInfo.FileName = @"C:\\fop-0.95beta\\FOP";
l'invite dos s'excute avec les deux méthodes :
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part proc.StartInfo.FileName = @"C:\\fop-0.95beta\\FOP";
mais l'excution ne reconnais pas l'argument passé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part proc.StartInfo.FileName = "C:\\fop-0.95beta\\FOP";
le resultat affiche des erreur dans l'invite DOS comme koi FOP à été executer sans commande !
Code : Sélectionner tout - Visualiser dans une fenêtre à part proc.StartInfo.Arguments = "-xml Server.MapPath(\"\\donnees.fo\") - xsl Server.MapPath(\"\\feuille.xsl\") - pdf Server.MapPath(\"\\resultat.pdf\")";
Merci bien
Les espaces entre les tirets et la commande ne pourraient pas gêner ?
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part - xsl Server.MapPath...
A mon avis çà ne doit pas trop lui plaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part - pdf Server.MapPath...
vous avez raison c'etait un pb à cause des espaces -XML ???? - XSL ??
- et la j'ai un autre probleme, j'ai dans mon application mes fichiers XML et XSL, alors il reconnais pas Server.MapPath
Code : Sélectionner tout - Visualiser dans une fenêtre à part proc.StartInfo.Arguments = "-xml Server.MapPath(\"\\donnees.xml\") - xsl Server.MapPath(\"\\feuille.xsl\") - pdf Server.MapPath(\"\\resultat.pdf\")";
je vous remercie j'ai trouvé la réponse :
merci beaucoup, si vous pouvez juste me donner l'intruction qui me permet de rediriger cette sortie en streaming .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 proc.EnableRaisingEvents=false; string fic_Xml = Server.MapPath("\\Donnees.xml"); string fic_Xsl = Server.MapPath("\\feuille.xsl"); string fic_Res_Pdf = Server.MapPath("\\resultat.pdf"); string chemin = "-xml \""+fic_Xml+"\" -xsl \""+fic_Xsl+"\" -pdf \""+fic_Res_Pdf+"\""; proc.StartInfo.FileName = "C:\\fop-0.95beta\\FOP"; proc.StartInfo.Arguments = chemin; proc.Start() ; proc.WaitForExit() ; proc.Close();
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true; ... StringBuilder sb = new StringBuilder(); string line; while ((line = proc.StandardOutput.ReadLine()) != null) { text.AppendLine(line); }
FOP est un fichier .bat, non ? Je ne suis pas sûr que tu puisses exécuter directement un .bat avec Process, du moins pas si UseShellExecute est à false (et il doit être à false pour pouvoir utiliser RedirectStandardOutput...). Par contre tu peux lancer cmd.exe en lui passant en paramètre le script .bat et les paramètres
ben je t'ai montré comment récupérer la sortie (avec StandardOutput), après tu en fais ce que tu veux... qu'est-ce que tu veux dire par "rendre ça en streaming" ?
ça veux dire , au lieu que FOP genere le fichir sur disque, je veux que ça soit en memoire et afficher en browser
voila le type de sortie de fop qu'il supporte :
)
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
21
22
23
24
25
26
27
28
29
30
31 [OUTPUT] outfile input will be rendered as PDF into outfile -pdf outfile input will be rendered as PDF (outfile req'd) -pdfa1b outfile input will be rendered as PDF/A-1b compliant PDF (outfile req'd, same as "-pdf outfile -pdfprofile PDF/A-1b") -awt input will be displayed on screen -rtf outfile input will be rendered as RTF (outfile req'd) -pcl outfile input will be rendered as PCL (outfile req'd) -ps outfile input will be rendered as PostScript (outfile req'd) -afp outfile input will be rendered as AFP (outfile req'd) -tiff outfile input will be rendered as TIFF (outfile req'd) -png outfile input will be rendered as PNG (outfile req'd) -txt outfile input will be rendered as plain text (outfile req'd) -at [mime] out representation of area tree as XML (outfile req'd) specify optional mime output to allow AT to be converted to final format later -print input file will be rendered and sent to the printer see options with "-print help" -out mime outfile input will be rendered using the given MIME type (outfile req'd) Example: "-out application/pdf D:\out.pdf" (Tip: "-out list" prints the list of supported MIME types) -mif outfile input will be rendered as MIF (FrameMaker) (outfile req'd) Experimental feature - requires additional fop-sandbox.jar. -svg outfile input will be rendered as an SVG slides file (outfile req'd) Experimental feature - requires additional fop-sandbox.jar. -foout outfile input will only be XSL transformed. The intermediate XSL-FO file is saved and no rendering is performed. (Only available if you use -xml and -xsl parameters
Si c'est du PDF que tu veux générer, tu ne peux pas l'inclure dans une page web : tu es obligé de générer le fichier et de renvoyer l'utilisateur vers l'URL du fichier.
La technique expliquée ci-dessus permet de récupérer la sortie standard du programme (i.e. la sortie sur la console), ça ne s'applique pas ici...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager