Java iText生成带有横向和纵向页面的PDF

Java iText生成带有横向和纵向页面的PDF,java,itext,Java,Itext,我在生成PDF文档时遇到问题。 例如,我需要生成3个页面: 第一页(纵向)带有纵向文本 第二页(横向),带有纵向文本 第三页(纵向),带有纵向文本 我在创建第一页后设置: document.setPageSize(PageSize.A4.rotate()); 而且它似乎在起作用。 当我创建第三个页面时,我第二次设置了这个代码,但是文档仍然处于横向模式。 这是我的代码: Document document = new Document(PageSize.A4); PdfWri

我在生成PDF文档时遇到问题。 例如,我需要生成3个页面:

  • 第一页(纵向)带有纵向文本
  • 第二页(横向),带有纵向文本
  • 第三页(纵向),带有纵向文本
我在创建第一页后设置:

document.setPageSize(PageSize.A4.rotate());
而且它似乎在起作用。 当我创建第三个页面时,我第二次设置了这个代码,但是文档仍然处于横向模式。 这是我的代码:

    Document document = new Document(PageSize.A4);
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
    document.open();
    document.newPage();
    document.add(new Paragraph("Hello 1"));

    document.setPageSize(PageSize.A4.rotate());
    document.newPage();
    document.add(new Paragraph("Hello 2"));

    document.setPageSize(PageSize.A4.rotate());
    document.newPage();
    document.add(new Paragraph("Hello 3"));

    document.close();
我想要这样的东西:


有什么建议吗?

在分别创建第2页和第3页之前,您将
PageSize.A4.rotate()
设置为页面大小。因此,这两页都是横向的

由于最近设置的
文档
页面大小值用于创建新页面,因此如果在创建第3页之前,仅在创建第2页之前,根本不设置该值,则结果是相同的

因此,如果您不希望在横向中显示第三页,则在创建第3页之前,必须明确地将页面大小值设置回纵向值
PageSize.A4

document.setPageSize(PageSize.A4);
document.newPage();
document.add(new Paragraph("Hello 3"));

您能否发布iText7的更多代码看看您将第2页和第3页的页面大小设置为
PageSize.A4.rotate()
。因此,这两页都是横向的。如果不希望第三页横向显示,请不要将其大小设置为横向。@mkl确定。我删除了
PageSize.A4.rotate()
但第三页仍处于横向模式。没有删除,而是替换为
PageSize.A4
而没有
rotate()