2012-08-22 198 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,飛碟作品的魅力。