【问题标题】:iText Generate PDF with landscape and portrait pagesiText 生成带有横向和纵向页面的 PDF
【发布时间】:2019-08-11 07:32:43
【问题描述】:

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

  • 首页 (PORTRAIT) 带有纵向文字
  • 带有纵向文字的第二页(横向)
  • 带有纵向文字的第三页 (PORTRAIT)

我在创建第一页后设置:

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();

我想要这样的东西:

有什么建议吗?

【问题讨论】:

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

标签: java itext


【解决方案1】:

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

由于最近设置的document页面大小值用于创建新页面,如果在创建页面3之前完全不设置,结果是一样的,只是在创建页面2之前。

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

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

【讨论】:

    猜你喜欢
    • 2010-10-11
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2019-03-09
    • 2020-07-23
    相关资源
    最近更新 更多