iText rotate()不会定位第一页

时间:2012-07-05 17:13:53

标签: java itext

我读过的有关iText的所有内容都表示您应该能够设置页面大小然后创建新页面。但出于某种原因,当我尝试这个时,我的第一页不会轮换。但我的第二个是。有什么想法吗?

response.setContentType("application/pdf");
Document document = new Document();

try{
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, buffer); 
    document.open();
    //Start a new page
    document.setPageSize(PageSize.LETTER.rotate()); //  11" x 8.5"  new Rectangle(792f, 612f)

    document.newPage();
    Paragraph topText = new Paragraph();
    // add some content here...
    document.close(); 

    DataOutput dataOutput = new DataOutputStream(response.getOutputStream());
    byte[] bytes = buffer.toByteArray();
    response.setContentLength(bytes.length);

    for(int i = 0; i < bytes.length; i++) {
        dataOutput.writeByte(bytes[i]);
    }

} catch (DocumentException e) {
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:1)

document.newPage()实际上意味着“完成当前页面并打开一个新页面”。这意味着在您open()文档之后,您已经准备好了一个空白页面(文档之前已设置的大小)。

您应该在打开文档之前设置页面大小:

document.setPageSize(PageSize.LETTER.rotate());
document.open();