apache odftoolkit портретный/ландшафтный режим

Я использую библиотеку apache odftoolkit для создания отчета из кода Java в файл *.odt. Иметь такой код:

outputOdt = TextDocument.newTextDocument();
Paragraph p = outputOdt.addParagraph("some text");
p.appendTextContent("some text");

Я добавляю абзацы, таблицы, устанавливаю шрифты, и все работает нормально. Но мне нужно установить некоторые страницы в моем документе в ландшафтном режиме, но я не знаю, как это сделать. Я нашел класс API PageLayoutProperties и метод setPrintOrientation(), но не знаю, где его вызывать. Кто-нибудь знает?


person Vitaliy    schedule 05.10.2017    source источник


Ответы (2)


Найдено решение:

TextDocument outputOdt;
for( Iterator<StyleMasterPageElement> it = outputOdt.getOfficeMasterStyles().getMasterPages(); it.hasNext(); ) {
            StyleMasterPageElement page = it.next();
            String pageLayoutName = page.getStylePageLayoutNameAttribute();
            OdfStylePageLayout pageLayoutStyle = page.getAutomaticStyles().getPageLayout( pageLayoutName );
            PageLayoutProperties pageLayoutProps = PageLayoutProperties.getOrCreatePageLayoutProperties( pageLayoutStyle );

            double tmp = pageLayoutProps.getPageWidth();
            pageLayoutProps.setPageWidth( pageLayoutProps.getPageHeight());
            pageLayoutProps.setPageHeight( tmp );
        }
person Vitaliy    schedule 03.10.2018

Я наткнулся на этот существующий вопрос и ответ:

Как страница может Размер, ориентация страницы и поля страницы электронной таблицы ods задаются с помощью ODFDOM?

это примерно то же самое для электронной таблицы ODS, которая по сути такая же. Ключевым моментом является установка высоты и ширины страницы, а также ориентации печати в PageLayoutProperties

person Jaap    schedule 07.02.2019