tags:

views:

134

answers:

1

Here is some code snippet to give you an idea of what I got so far. I can output the Word document fine this way. I can also access the image via the URL in the browser, but the Word documents src does not appear to be hitting the servlet(according to some logs I have).

ExportServlet.java `

    response.setContentType("application/ms-word");

    String imageUrl = request.getScheme() + "://" + request.getServerName() +
                      ":" + request.getServerPort() + request.getContextPath() +
                      "/ExportImage";

    PrintWriter out = response.getWriter();

        out.println("<html xmlns:o='urn:schemas-microsoft-com:office:office'
    xmlns:w='urn:schemas-microsoft-com:office:word'
    xmlns:v='urn:schemas-microsoft-com:vml'
    xmlns='http://www.w3.org/TR/REC-html40'&gt;
    <head>
            <title>Exported Documents</title>

            <!--[if gte mso 9]>
           <xml>
           <w:WordDocument>
           <w:View>Print</w:View>
           <w:Zoom>100</w:Zoom>
           <w:DoNotOptimizeForBrowser/>
           <w:BreakWrappedTables/>
           </w:WordDocument>
           </xml>
           <![endif]-->
    </head>
    <body>
    <img src=\"" + imageUrl + "\">
    </body>
</html>")
    out.flush();

`

ExportImage.java

      Logger.log("getting Image");
      ServletContext servletContext = getServletContext();
        String filename = servletContext.getRealPath("myImage.gif");
        response.setContentType(
                servletContext.getMimeType(filename));
        File file = new File(filename);
        response.setContentLength((int)file.length());

        FileInputStream in = new FileInputStream(file);
        OutputStream out = response.getOutputStream();

        // Copy the contents of the file to the output stream
        byte[] buf = new byte[1024];
        int count = 0;
        while ((count = in.read(buf)) >= 0) {
            out.write(buf, 0, count);
        }
        in.close();
        out.flush();
        out.close();
A: 

Would another suitable approach be to generate the document completely on the server (with the image embedded already) and stream that to the requestor instead of trying to get the doc to do a separate https fetch? If so, Docmosis and JODReports can produce documents for you in doc format with images.

jowierun