Я хочу создать PDF-файл с альбомной ориентацией страниц. Когда я меняю формат страницы на альбомный с помощью document.setPageSize(PageSize.LETTER.rotate());, проблема не решается. Содержимое все равно отображается слева направо, а не снизу вверх.
Я хочу создать PDF-файл с альбомной ориентацией страниц. Когда я меняю формат страницы на альбомный с помощью document.setPageSize(PageSize.LETTER.rotate());, проблема не решается. Содержимое все равно отображается слева направо, а не снизу вверх.
Вы можете добиться желаемого результата в iText 7 с помощью интерфейса EventHandler:
protected class PageRotationEventHandler implements IEventHandler {
protected PdfNumber rotation = PORTRAIT;
public void setRotation(PdfNumber orientation) {
this.rotation = orientation;
}
@Override
public void handleEvent(Event event) {
PdfDocumentEvent docEvent = (PdfDocumentEvent) event;
docEvent.getPage().put(PdfName.Rotate, rotation);
}
}
Используйте PageRotationEventHandler сразу после определения средства записи:
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
PageRotationEventHandler eventHandler = new PageRotationEventHandler();
pdfDoc.addEventHandler(PdfDocumentEvent.START_PAGE, eventHandler);
Обратите внимание, что я использую SEASCAPE, чтобы получить ориентацию из вашего примера.
iText7 предлагает следующие значения для вращения:
new PdfNumber(180); PdfNumber(90);PdfNumber(0);PdfNumber(270);Сборка персонального компьютера от Artline: умный выбор для современных пользователей