Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сохранение в один PDF разноориентированных страниц
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
FantasyOr
Здравствуйте, подскажите пожалуйста, как сохраненить в одном pdf документе страницы с разной ориентацией (альбомная/портретная) и разного формата (А4, В5...)
честно читал доки(на сайте) искал и форум и инет, ничего подобного не нашел.
Спасибо.
ufna
Ну что касательно ориентации страниц, ниже код привел (там заодно все в основном нужные фукции, параметры на ... заменил).

Размер страницы ака PaperSize скорее всего менять там же, где происходит смена ориентации - т.е. до newPage().


P.S. - pages - массив абстрактных страниц, одним из свойств которых является ориентация, т.е. это как бы твой класс страницы или просто откуда данные брать.

Раскрывающийся текст
    QPrinter printer(QPrinter::HighResolution);    
    printer.setOutputFileName(fileName);
    printer.setFullPage(...);
    printer.setPaperSize(...);
    printer.setPageMargins(...);

    printer.setResolution(600);

    if( pages.at(0)->orientation() == cUPicsLayoutPage::Portrait )
        printer.setOrientation(QPrinter::Portrait);
    else
        printer.setOrientation(QPrinter::Landscape);

    for( int i = 0; i < pages.size(); i++ ) {        
        /*
           печатаем страницу
        */

        // Настройка ориентации следующей страницы
        if( i != pages.size()-1 ) {
            if( pages.at(i+1)->orientation() == cUPicsLayoutPage::Portrait )
                printer.setOrientation(QPrinter::Portrait);
            else
                printer.setOrientation(QPrinter::Landscape);

            printer.newPage();
        }
    }
FantasyOr
да уж да.
setOrientation я видел, но думал все страницы перевернутся если поменять через setOrientation, ведь свойство явно принтера, не отдельной страницы, а оно вот как работает.
Спасибо большое.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.