3

さて、私は問題で立ち往生しています、

HTMLソースを使用してPDFを作成する必要があり、次のようにしました:

File pdf = new File("/home/wrk/relatorio.pdf");
OutputStream out = new FileOutputStream(pdf);
InputStream input = new ByteArrayInputStream(build.toString().getBytes());//Build is a StringBuilder obj
Tidy tidy = new Tidy();
Document doc = tidy.parseDOM(input, null);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(out);
out.flush();
out.close();

私はJSPを使用しているので、サーバーに書き込むのではなく、このファイルをユーザーにダウンロードする必要があります...

このファイルをハード ドライブに書き込まずに、この Outputstream 出力を Java のファイルに変換するにはどうすればよいですか?

4

3 に答える 3

2

VRaptor 3.3.0+ を使用している場合は、ByteArrayDownloadクラスを使用できます。コードから始めて、これを使用できます。

@Path("/download-relatorio")
public Download download() {
    // Everything will be stored into this OutputStream
    ByteArrayOutputStream out = new ByteArrayOutputStream();

    InputStream input = new ByteArrayInputStream(build.toString().getBytes());
    Tidy tidy = new Tidy();
    Document doc = tidy.parseDOM(input, null);
    ITextRenderer renderer = new ITextRenderer();
    renderer.setDocument(doc, null);
    renderer.layout();
    renderer.createPDF(out);
    out.flush();
    out.close();

    // Now that you have finished, return a new ByteArrayDownload()
    // The 2nd and 3rd parameters are the Content-Type and File Name
    // (which will be shown to the end-user)
    return new ByteArrayDownload(out.toByteArray(), "application/pdf", "Relatorio.pdf");
}
于 2015-04-19T16:41:23.927 に答える