Изменить ориентацию существующего документа PDF (книжная / альбомная) - PullRequest
0 голосов
/ 12 июня 2018

Можно ли изменить ориентацию существующего документа с «книжного» на «альбомный» или наоборот?

Я попытался скопировать страницу (в портретном режиме) на вновь созданную страницу (в альбомном режиме) с помощью iText, но это не сработало, была использована ориентация страницы скопированной страницы.

Вот код, который я использовал:

PdfReader originalFileReader = new PdfReader(src);

Document landscapeDoc = new Document(PageSize.A4.rotate());

PdfCopy copy = new PdfCopy(landscapeDoc, new FileOutputStream("/home/user/landscape.pdf"));

landscapeDoc.open();

for (int i = 1; i <= originalFileReader.getNumberOfPages(); i++) {
     copy.addPage(copy.getImportedPage(originalFileReader, i));
}

landscapeDoc.close();

1 Ответ

0 голосов
/ 12 июня 2018

Получение страницы из исходного файла и добавление ее в копию не приводит к изменению макета страницы.Если вы вообще получаете альбомную страницу, она просто будет содержать копию исходной страницы, вырезанную по высоте страницы альбомной ориентации.

Если посмотреть на iText-сайт , кажется, что 2Ближайшие варианты использования, к которым вы хотите, - это извлечение полей данных (размеченных с помощью шаблона) из PDF в структуру XML ( pdf2Data ) и добавление содержимого (водяные знаки, изображения, аннотации и т. д.) всуществующий PDF.(Множество примеров здесь .)

Там нет ничего о том, как интеллектуально извлекать контент и форматировать из PDF и перекладывать его в другой PDF.(В любом случае это будет чрезвычайно трудная проблема.)

...