我想根据来自Mysql DB的Incoming Value使用Struts创建一个pdf.Could任何人都可以通过任何工具或如何处理来帮助我?
答案 0 :(得分: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;
}
}
答案 1 :(得分:0)
除了iText之外,您还可以使用JasperResports - 它建立在iText的顶部,但为您的报告提供GUI设计器(然后可以导出为pdf,Excel,打印机等)。 / p>
但无论哪种方式,你都必须阅读和学习很多东西;)
答案 2 :(得分:0)
Docmosis可让您以Doc或ODT格式创建文档的基础作为模板。然后,您可以在呈现PDF之前使用mysql数据来控制要对模板执行的操作(插入数据,删除数据,选择其他模板等)。我不确定你的“具有复杂UI的pdf”是什么意思。 Docmosis允许您模拟相当复杂的文档(感谢OpenOffice),但Jasper允许您编写几乎任何您可能需要的输出结果。