2012-08-22 154 views

回答

-1

飞碟需要的是一个格式良好的XML(在这种情况下,你的HTML)来创建PDF导出文件。 由于GAE支持Servlets

https://developers.google.com/appengine/docs/java/#Java_Requests_and_servlets

可能并非难治包括一个servlet内飞碟发动机。事情是这样的

import java.io.IOException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class MyFSServlet extends HttpServlet { 
    @Override 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws IOException { 
     try { 
    StringBuffer buf = new StringBuffer(); 
    buf.append("<html YOUR HTML CODE HERE>"); //could be retrieve from somewhere else 
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
    Document doc = builder.parse(new StringBufferInputStream(buf.toString())); 
    ITextRenderer renderer = new ITextRenderer(); 
    renderer.setDocument(doc, null); 
    renderer.layout(); 
    OutputStream os = resp.getOutputStream(); 
    renderer.createPDF(os); 
    os.close(); 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 
    } 

}

1

Java7

飞碟使用抽象窗口工具包(java.awt中。*)这是在AppEngine Java 7 Runtime Environment限制。尝试使用Flying Source给出:

java.lang.NoClassDefFoundError: Could not initialize class org.xhtmlrenderer.pdf.ITextOutputDevice 
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:102) 
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:98) 

但是,Flying Sourcer可以在AppEngine灵活的环境中使用。

Java8AppEngine Java 8 Runtime Evnvironment,飞碟作品的魅力。