java - iText rotate() 不会定位第一页

标签 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();
}

最佳答案

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

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

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

关于java - iText rotate() 不会定位第一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11349248/

相关文章:

java意外隐式接口(interface)实现

java - 使用 setVisible 方法控制可见性时出错

java - 如何查看两个日期之间固定时间段的数量?

java - 使用 IPdfWriterConfiguration 加密 pdf xDocReport (iText) 不起作用

java - Vaadin 中类似 anchor 的功能,可以跳转/滚动到某个点

java - 目标兼容性和与该JDK运行Gradle有区别吗?

itext - 如何在单个字符串中使用常规和粗体?

java - 使用itext java在pdf上叠加图像

java - 合并两个 PDF 文件——一个作为背景,一个作为前景

itext - 使用 libre office 创建的 Acrofield 不可填写代码,除非我编辑 pdf 一次