如何使用ITextRenderer在每个页面上添加页眉和页脚

时间:2014-01-17 06:05:08

标签: java spring-mvc itext

我遇到以下需要生成pdf的情况。

我在做什么

String A="<html><head></head><body>Some start  html content"

String B="here the string is create **dynamic** where this can be of any length"

 String C=here its end section of html..... </body></html>"

 String finalHtml=A+B+C;

在我的控制器中使用ITextRenderer生成PDF。 我的控制器内容如下所示。

@RequestMapping(value="/genratePdf",method=RequestMethod.GET)
public void getPdfGenration(HttpServletRequest request,HttpServletResponse response){ 

    response.setContentType("application/pdf");
    StringBuffer buf = new StringBuffer();
    buf.append(finalHtml);
    try{
        DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = builder.parse(new StringBufferInputStream(buf.toString()));
        ITextRenderer renderer = new ITextRenderer()
        renderer.layout();
        java.io.OutputStream os = response.getOutputStream();
        renderer.createPDF(os);
        os.flush();
        os.close();
     }catch (Exception ex) {
        ex.printStackTrace();
     }

这很好用并返回给我pdf但我面临的问题是在每个页面上放置标题内容。任何帮助或建议。我使用的是Spring 3.1.and我使用的是iText-paulo-155.jar,itext-2.1.0.jar 提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果您可以直接访问iText的PdfWriter,则可以使用PdfPageEvent界面。有关如何通过PdfPageEvent创建页眉和页脚的示例,请访问:http://itextpdf.com/examples/iia.php?id=103

但是,如果您想在页眉或页脚中添加“Y页面X”之类的内容,则应使用PdfStamper代替。可以在此处找到它的示例:http://itextpdf.com/examples/iia.php?id=118