import java.io.File;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.Templates;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import com.xmlmind.fo.converter.Driver;

public class Sample2 {
    public static void main(String[] args) throws Exception {
        if (args.length != 3) {
            System.err.println("usage: java Sample2 xslt_stylesheet" + 
                               " xml_file rtf_file");
            System.exit(1);
        }

        TransformerFactory factory = TransformerFactory.newInstance();
        Templates compiledStylesheet = 
            factory.newTemplates(new StreamSource(new File(args[0])));

        Transformer transformer = compiledStylesheet.newTransformer();
        File xmlFile = new File(args[1]);
        File foFile = File.createTempFile("sample2_", ".fo");
        transformer.transform(new StreamSource(xmlFile),
                              new StreamResult(foFile));

        Driver xfc = new Driver();
        xfc.setProperty("outputFormat", "rtf");
        xfc.setProperty("baseURL", 
                        xmlFile.getParentFile().toURL().toExternalForm());
        xfc.setInput(foFile.getPath());
        xfc.setOutput(args[2]);
        xfc.convert();

        foFile.delete();
    }
}
