Hi All;
Trying to get a FOP demo off the ground. The idea is an FO document comes in
from memory and is rendered to a PDF on the hard disk of the server.
Just to get things going I am working with a FO file on the hard drive as
well. I will tackle the contents of this file submitted in memory next.
Below is my code.
When I run it in IE it get a Pop up message telling me the "File does not
begin with '%PDF-'". This is weird to me because I am not trying to send it
back through the response object, I don't know why the browser is even
looking at it.
When I run it in FireFox I get my success message printed, and the document
created. However when I trying and open it I am told there is a Sharing
Violation. The writer was closed before I printed the success statement so I
am not sure where the conflict came from.
Is there a better, smarter or easier way to do this? Any help would be
appreciated.
Thanks,
Luke
/*
* Test class to get this FOP stuff working
*/
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.fop.apps.Driver;
import org.xml.sax.*;
/**
* This class is intended to demonstrate submitting a FO document in memory
* (String) to FOP and write a PDF document to the server.
*/
public class FopServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException {
try {
//the input
File fofile = new
File("D:\\applications\\fop\\fop-0.20.5\\test.fo");
//location to write to
File indexPDF = new
File("D:\\applications\\fop\\fop-0.20.5\\index.pdf");
//create an input stream from the input file
InputStream in = new FileInputStream(fofile);
//FOP Driver
Driver driver = new Driver();
//set the render type
driver.setRenderer(Driver.RENDER_PDF);
//Setup output stream
OutputStream out = new FileOutputStream(indexPDF);
out = new BufferedOutputStream(out);
//configure the input and the output
driver.setInputSource(new
InputSource("D:\\applications\\fop\\fop-0.20.5\\test.fo"));
driver.setOutputStream(out);
//run the driver
driver.run();
//get the content
String pdfFileContent = out.toString();
//create the file writer
FileWriter writer = new FileWriter(indexPDF);
//get content into buffer
BufferedReader br = new BufferedReader(new
StringReader(pdfFileContent));
//inialize a string to hold each line
String str = "";
//write the file
while ((str = br.readLine()) != null) {
writer.write(str);
}
//close up the writer
writer.close();
//write the success message
PrintWriter output = response.getWriter();
output.println("<html><head><title>Success</title></head>\n"
+ "<body><h1>Nice Work!</h1></body></html>");
} catch (Exception ex) {
throw new ServletException(ex);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]