Home Page Creating PDF files with XSL-FO and .NET
Home
                              XSL-FO Server
                            • Getting started
                            • Versions
                            • How to
                            • XSL-FO Editor
                            • XSL-FO resources
                            • XSL-FO in REALbasic
                            • XSL-FO in Php
                            • XSL-FO in VB 6
                            • XSL-FO in .NET
                            • XSL-FO in Ruby
                            • XSL-FO in Delphi
                            • Usage with APEX
                            • Professional license
                            • XSL-FO in .NET

                              The following script shows how you can call the FOP server from a .NET program:

                              using System;
                              using System.Collections.Generic;
                              using System.Linq;
                              using System.Text;
                              using System.Net;
                              using System.IO;


                              namespace ConsoleApplication1
                              {
                              class Program
                              {
                              static void Main(string[] args)
                              {
                              string xml;

                              // input xml data
                              xml="<?xml version=\"1.0\" encoding=\"iso-8859-1\"?> <departments><department><departmentName>R&amp;D</departmentName> <person> <name>John Schmidt</name> ";
                              xml=xml +"<address>Red street 3</address> <status>A</status> </person> <person> <name>Paul Bones</name> <address>White street 5</address> <status>A</status> ";
                              xml=xml +"</person> <person> <name>Mark Mayer</name> <address>Blue street 5</address> <status>A</status> </person> <person> <name>Janet Black</name> ";
                              xml=xml +"<address>Black street 8</address> <status>I</status> </person></department><department> <departmentName>Sales</departmentName> <person> ";
                              xml=xml +"<name>Juan Gomez</name> <address>Green street 3</address> <status>A</status> </person> <person> <name>Juliet Bones</name> <address>White street 5</address> ";
                              xml = xml + " <status>A</status> </person></department></departments>";


                              // call URL of FOP server passing the template name (XSL-FO file)
                              HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://localhost:8087/J4LFOPServer/servlet?TEMPLATE=departmentEmployees.fo");
                              webRequest.ContentType = "text/xml";
                              webRequest.Method = "POST";

                              byte[] bytes = Encoding.ASCII.GetBytes(xml);

                              Stream os = null;
                              try
                              { // send the Post
                                  webRequest.ContentLength = bytes.Length; //Count bytes to send
                                  os = webRequest.GetRequestStream();
                                  os.Write(bytes, 0, bytes.Length); //Send XML bytes
                              }
                              catch (WebException ex)
                                  { 
                                  }
                              finally
                              {
                                  if (os != null)
                                  {
                                  os.Close();
                                  }
                              }

                              try
                              { // get the response
                                  HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
                                  Stream pdfStream=webResponse.GetResponseStream();
                                  long len = webResponse.ContentLength;

                                  byte[] pdfBytes=new byte[len];
                                  pdfStream.Read(pdfBytes,0,(int) len);
                                  pdfStream.Close();

                                  // save PDF to file
                                  FileStream fileOs=new FileStream("output.pdf", System.IO.FileMode.Create, System.IO.FileAccess.Write);
                                  fileOs.Write(pdfBytes, 0, pdfBytes.Length); 
                                  fileOs.Close(); 

                              }
                              catch (WebException ex)
                              {

                              }


                              }
                              }
                              }