crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Сохранение в один PDF разноориентированных страниц
FantasyOr
  опции профиля:
сообщение 25.8.2010, 12:38
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 75
Регистрация: 13.8.2010
Пользователь №: 1956

Спасибо сказали: 4 раз(а)




Репутация:   0  


Здравствуйте, подскажите пожалуйста, как сохраненить в одном pdf документе страницы с разной ориентацией (альбомная/портретная) и разного формата (А4, В5...)
честно читал доки(на сайте) искал и форум и инет, ничего подобного не нашел.
Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 25.8.2010, 13:12
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

Спасибо сказали: 29 раз(а)




Репутация:   5  


Ну что касательно ориентации страниц, ниже код привел (там заодно все в основном нужные фукции, параметры на ... заменил).

Размер страницы ака 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();
        }
    }


Сообщение отредактировал ufna - 25.8.2010, 13:13
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FantasyOr
  опции профиля:
сообщение 25.8.2010, 14:12
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 75
Регистрация: 13.8.2010
Пользователь №: 1956

Спасибо сказали: 4 раз(а)




Репутация:   0  


да уж да.
setOrientation я видел, но думал все страницы перевернутся если поменять через setOrientation, ведь свойство явно принтера, не отдельной страницы, а оно вот как работает.
Спасибо большое.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.6.2020, 21:45