1

我想使用Struts根据Mysql DB的传入值创建一个pdf。任何人都可以通过任何工具或如何处理来帮助我吗?

4

3 回答 3

0

Docmosis将让您以 Doc 或 ODT 格式创建文档的基础作为模板。然后,您可以在渲染 PDF 之前使用 mysql 数据来控制要对模板执行的操作(插入数据、删除数据、选择不同的模板等)。我不确定您的“具有复杂 UI 的 pdf”是什么意思。Docmosis 可让您对相当复杂的文档进行模板化(感谢 OpenOffice),但 Jasper 可让您编写几乎任何您可能需要的输出结果。

于 2010-05-13T03:50:37.613 回答
0

您可以使用iText - 一个用于创建 PDF 文档的成熟开源库。以下示例基于 Struts 1,但可能对您有所帮助:

public class PDF extends Action {
    public ActionForward perform(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {

    try {

        Document document = new Document();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfWriter.getInstance(document, baos);
        document.open();
        document.add(new Paragraph("Hello World"));
        //
        // add your data here ...
        //
        document.close();

        response.setContentType("application/pdf");
        response.setContentLength(baos.size());
        ServletOutputStream out = response.getOutputStream();
        baos.writeTo(out);
        out.flush();
    } catch (Exception e2) {
        System.out.println("Error in " + getClass().getName() + "\n" + e2);
    }
    return null;
    }
}
于 2009-12-21T07:45:34.163 回答
0

除了 iText,您还可以使用JasperResports - 它建立在 iText 之上,但为您的报告提供了 GUI 设计器(然后可以导出为 pdf、excel、打印机等)。

但是无论哪种方式,您都必须阅读和学习很多东西;)

于 2009-12-21T08:28:37.337 回答