На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Окно Печать карты

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Окно Печать карты
 
Добрый день.

Пытаемся портировать функционал написанного проекта из Windows 10 (MAPAPI 13 версии, Qt 5) в Astra Linux 1.6 используем ГИС Конструктор FREE для QtDesigner x64 Включая компонент 3D-модели (версия 12.6.1, Qt4, Qt5, ОС Astra Linux SE, релиз Смоленск).
Среда разработки Qt Creator.

Столкнулись с проблемой вывода диалога печати карты.

Подскажите, как вызвать диалог Печать карты в Astra Linux.

В Windows 10 вызываем следующим образом:
Код
    DFRAME dfarme;
    HINSTANCE libinstOpenDlg = 0;

    dfarme = borderClass->getPrintingAreaCorners();


    MAPPRINTPARMEX printparm;
    memset(&printparm,0,sizeof(printparm));
    printparm.Length = sizeof(MAPPRINTPARMEX);
    printparm.Regime = (ui->printMode_toPrinter->isChecked()) ? MPR_PRINT : MPR_PRINTONLY;
    printparm.Handle = hWnd;
    printparm.File = 0;
    printparm.PlaneFrame =  dfarme;
    printparm.TypeOutput = MPO_RASTERIAL;
    printparm.FitToPage = (ui->printMode_split->isChecked()) ? MPF_SPLITTOPAGES : MPF_FITTOPAGE;
    printparm.Preview = MPV_MAP;
    printparm.Scale = scale;
    printparm.FieldLTmm = ui->fldLeft->text().toInt();
    printparm.FieldUPmm = ui->fldTop->text().toInt();
    printparm.FieldRTmm = ui->fldRight->text().toInt();
    printparm.FieldDNmm = ui->fldBut->text().toInt();
    printparm.PaperWidth = static_cast<int>(paperW);
    printparm.PaperHeight = static_cast<int>(paperH);
    printparm.Border = 1;
    printparm.TypePrint = MPT_NORMAL;
    printparm.Copies = 1;


    HPRINTER (WINAPI * prnLoadPrinter)() = nullptr;
    long int (WINAPI * prnMapPrintEx)(HMAP hmap, HPRINTER printer,  MAPPRINTPARMEX* printparm,TASKPARM* taskparm, char* title)  = nullptr;

    prnLoadPrinter = reinterpret_cast<void* (*)()>(mapLoadLibrary("gis64forms.dll",&libinstOpenDlg,"prnLoadPrinter"));
    prnMapPrintEx  = (long int (WINAPI * )(HMAP hmap, HPRINTER printer, MAPPRINTPARMEX* printparm, TASKPARM* taskparm, char* title)) ::mapGetProcAddress(libinstOpenDlg,"prnMapPrintEx");

    HPRINTER printer;

    if (prnLoadPrinter)
        printer = prnLoadPrinter();


    if (printer == 0) {
        if (libinstOpenDlg)
            FreeLibrary(libinstOpenDlg);
        return;
    }


    TASKPARM parm;
    memset(&parm, 0, sizeof(parm));
    if (prnMapPrintEx && hMap)
        prnMapPrintEx(hMap, printer, &printparm, &parm, QString("Печать").toLocal8Bit().data());


    hView->Repaint();
Изменено: Александр - 24.09.2020 13:38:52
 
Здравствуйте.

Вызов диалога печати происходит с помощью компонента печати QDMapPrint. Пример вызова диалога реализован в примере myfirst из состава инсталляции ГИС Конструктор.

В состав инсталляции дополнительно входят исходные тексты компонента QDMapPrint (qdmdprn.cpp) и обработчика QDMapPrintAction (qdmactprint.cpp).
Исходные тексты библиотеки компонентов расположены в каталоге /usr/share/gisdesigner/Sources/.

 
Вечер добрый, Константин Ганюшин,
Спасибо за наводку, применили диалоговое окно "Печать" компонента QDMapBuildEps (используется в myfirst).
Но, к сожалению, его функционал не позволяет напечатать карту на одной странице, в приложении под Windows 10 этого результата позволяла добиться кнопка "Растянуть на страницу", размещенная на диалоговом окне Печать карты
https://www.dropbox.com/s/iaypnilt3u93760/print00.PNG?dl=0
либо значение параметра FitToPage (структуры MAPPRINTPARMEX) установленное в MPF_FITTOPAGE.

Подскажите, возможно ли реализовать эту возможность в приложении под Linux?
 
Здравствуйте!

Да, мы добавим данный функционал в следующую версию ГИС Конструктор.
 
Цитата
Александр Савелов написал:
Здравствуйте!

Да, мы добавим данный функционал в следующую версию ГИС Конструктор.

День добрый, Александр Савелов,
Когда планируется выпуск следующей версии ГИС Конструктор (интересует, в первую очередь, версия с добавленной функцией).
 
Планируем выпустить обновленную версию ГИС Конструктор ориентировочно во второй половине октября.
После выхода версии мы оповестим Вас в этой ветке форума.
 
Здравствуйте!

На сайте доступна новая версия ГИС Конструктор с обновленным диалогом печати.
Страницы: 1
Читают тему (гостей: 2)



© КБ Панорама, 1991-2020

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности