iText Создание PDF с альбомной и портретной страницей - PullRequest
1 голос
/ 20 марта 2019

У меня проблема с генерацией 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();

Я бы хотел что-то вроде этого:

enter image description here

Есть предложения?

1 Ответ

1 голос
/ 05 июня 2019

Вы устанавливаете PageSize.A4.rotate() как размер страницы как непосредственно перед созданием страницы 2 и страницы 3 соответственно.Таким образом, обе эти страницы имеют альбомную ориентацию.

Поскольку для создания новой страницы используется самое последнее установленное значение размера страницы document, результат будет таким же, если вы вообще не устанавливали его перед созданиемстр. 3, только перед созданием страницы 2.

Если вам не нужна третья страница в альбомной ориентации, вам необходимо явно установить значение размера страницы обратно в портретное значение PageSize.A4 перед созданием страницы 3:

document.setPageSize(PageSize.A4);
document.newPage();
document.add(new Paragraph("Hello 3"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...