Spring mvc iText文档:旋转页面

Spring mvc iText文档:旋转页面,spring-mvc,itext,Spring Mvc,Itext,文档旋转后,我丢失了页面中数据的顺序: package com.mkyong.common.view; import java.io.File; import java.io.IOException; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import o

文档旋转后,我丢失了页面中数据的顺序:

package com.mkyong.common.view;


    import java.io.File;
    import java.io.IOException;
    import java.util.Map;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.web.servlet.view.document.AbstractPdfView;
    import com.lowagie.text.Document;
    import com.lowagie.text.DocumentException;
    import com.lowagie.text.PageSize;
    import com.lowagie.text.Table;
    import com.lowagie.text.pdf.PdfWriter;
    import com.lowagie.text.Image;
    public class PdfRevenueReportView extends AbstractPdfView{

        @Override
        protected void buildPdfDocument(Map model, Document document,
            PdfWriter writer, HttpServletRequest request,
            HttpServletResponse response) throws Exception {

            Image im= Image.getInstance("D:\\tree2.png");
             // setSize
             im.scaleToFit(130, 150);


            Map<String,String> revenueData = (Map<String,String>) model.get("revenueData");

            Table table = new Table(2);
            table.addCell("Month");
            table.addCell("Revenue");

            for (Map.Entry<String, String> entry : revenueData.entrySet()) {
                table.addCell(entry.getKey());
                table.addCell(entry.getValue());
                    }
            document.setPageSize(PageSize.A4.rotate());
            document.newPage();
            document.add(im);
            document.add(table);

        } 
    }
它将返回到默认位置。问题在哪里

谢谢。

试试这个:

Document document = new Document(PageSize.A4.rotate());
试试这个:

Document document = new Document(PageSize.A4.rotate());
通过这种方式解决:

            document.setPageSize(PageSize.A4.rotate());
        document.open();
        document.newPage();
谢谢@Alex.

通过以下方式解决:

            document.setPageSize(PageSize.A4.rotate());
        document.open();
        document.newPage();

谢谢@Alex.

以下是在(新)itext 7中旋转页面的代码:

PdfDocument pdfDoc=新的PdfDocument(新的PdfReader(src)、新的PdfWriter(dest));

对于(int i=1;i,以下是在(新)itext 7中旋转页面的代码:

PdfDocument pdfDoc=新的PdfDocument(新的PdfReader(src)、新的PdfWriter(dest));

对于(int i=1;i但是对象文档是方法
protected void buildPdfDocument
的一个参数。您可以在函数内部更改和创建文档吗?试试看。或者使用如上所述的构造函数,在该函数外部创建文档。我为参数指定另一个名称,并在函数内部实例化,它会告诉我此错误:
Etat HTTP 500-请求处理失败;嵌套异常为com.lowagie.text.DocumentException:文档尚未打开;您只能添加元信息。
调用构造函数后添加
document.open();
另一个异常
Etat HTTP 500-请求处理失败;嵌套异常为ExceptionConverter:java.io.IOException:文档没有页面。
甚至我将其放在open方法之后:
document.newPage()
但是对象文档是方法的参数
protected void buildPdfDocument
你能在你的函数中更改并创建文档吗?试试看。或者使用上面的构造函数在这个函数之外创建你的文档。我给这个参数取了另一个名字,在函数里面实例化,它给我这个s错误:
Etat HTTP 500-请求处理失败;嵌套异常为com.lowagie.text.DocumentException:文档尚未打开;您只能添加元信息。
调用构造函数后添加
document.open();
另一个异常
Etat HTTP 500-请求处理失败;嵌套异常为ExceptionConverter:java.io.IOException:文档没有页面。
甚至我将其放在open方法之后:
document.newPage();