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

Александр Савелов (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Александр Савелов
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 53 След.
Печать карть программным способом под операционной системой МСВС
 
Здравствуйте!

Мы выделили отдельную функцию печати из графического компонента ГИС Конструктор в виде маленького примера для того, чтобы мы могли отталкиваться от общего исходного кода. На данный момент она печатает карту Ногинска в pdf-файл (тот же результат, который я прикреплял ранее).

[CODE]#include <QApplication>
#include <QPrinter>

#include "mapapi.h"
#include "prnapi.h"
#include "qdmcmp.h"
#include "struct.h"

int main(int argc, char **argv)
{
 QApplication app(argc, argv);
 QDMapView mapView;

 HMAP mapHandle = mapOpenData("/tmp/Noginsk/Noginsk.sit");

 struct BORDER
 {
   DOUBLEPOINT UpLeft;
   DOUBLEPOINT UpRight;
   DOUBLEPOINT DownRight;
   DOUBLEPOINT DownLeft;
   DOUBLEPOINT UpLeftLast;
 } border;

 memset(&border, 0, sizeof(border));

 DFRAME FrameTrap;
 mapGetTotalBorder(mapHandle, &FrameTrap, PP_PLANE);

 SCRIPTPARAM ScriptParam;
 memset(&ScriptParam, 0, sizeof(ScriptParam));
 strncpy(ScriptParam.NameInputPost, "/tmp/mapprint.pdf", sizeof(ScriptParam.NameInputPost));
 ScriptParam.Scale = mapGetShowScale(mapHandle);
 ScriptParam.Resolution = 300;
 ScriptParam.CutListFlag = 1;  // Одностраничная печать формат - A0

 MAPPRINTPARMEX printParm;
 memset(&printParm, 0, sizeof(printParm));
 printParm.PlaneFrame = FrameTrap;
 printParm.Scale = mapGetShowScale(mapHandle);

 FRAMEPRINTPARAM frameprnpar;
 memset(&frameprnpar, 0, sizeof(frameprnpar));
 frameprnpar.PlaneFrame = FrameTrap;
 frameprnpar.ExpandFrame = FrameTrap;

 QPrinter *printer = new QPrinter(QPrinter::HighResolution);
 printer->setColorMode(QPrinter::Color);

 HINSTANCE libinstComm;

 void (*msInitPrintParam)(MAPPRINTPARMEX *, BORDER, double, bool);
 long int (*msPrintMap)(HMAP, SCRIPTPARAM *, MAPPRINTPARMEX *, QPrinter *);

 msInitPrintParam = (void (*)(MAPPRINTPARMEX *, BORDER, double, bool)) mapLoadLibrary("libqdmapcomm.so", &libinstComm, "msInitPrintParam");
 msPrintMap = (long int (*)(HMAP, SCRIPTPARAM *, MAPPRINTPARMEX *, QPrinter *)) mapGetProcAddress(libinstComm, "msPrintMap");

 if (msInitPrintParam != 0 && msPrintMap != 0)
 {
   // Подготовить параметры к печати
   (*msInitPrintParam)(&printParm, border, 0, true);

   // Отправить на печать на выбранный принтер
   (*msPrintMap)(mapHandle, &ScriptParam, &printParm, printer);

   // Выгрузка библиотеки
   if (libinstComm)
     mapFreeLibrary(libinstComm);
 }

 mapCloseData(mapHandle);

 return 0;
}[/CODE]Какие вопросы необходимо уточнить, чтобы использовать данный код для печати Вашей карты?
Зарамочное оформление карты через gisapi
 
Здравствуйте!

Обновили SDK для ГИС Оператор SE - в новой версии в состав входит заголовочный файл frmapi.h.
Новая версия доступна для скачивания на нашем сайте: [URL=https://gisinfo.ru/download/download_linux.htm#13]https://gisinfo.ru/download/download_linux.htm#13[/URL]
Печать карть программным способом под операционной системой МСВС
 
Здравствуйте!

Прошу прощения за задержку с ответом.

Отпечатал с помощью диалога из состава ГИС Оператор 12 карту Ногинска из состава инсталляции в формат pdf.
Получилось 4 листа: [URL=https://dropmefiles.com/CBWEu]https://dropmefiles.com/CBWEu[/URL]

Посмотрите, пожалуйста, подходит ли для Вас данный результат?
Снова о зарамочном оформлении
 
Здравствуйте!

Прошу прощения за задержку с ответом.

На данный момент библиотека frmapi не входит в состав ГИС Конструктор.
Доступны исходные тексты этой библиотеки: [URL=http://gisinfo.ru/download?id=229]http://gisinfo.ru/download?id=229[/URL]
Проблемы с отрисовкой карты в принтерном растровом виде
 
Здравствуйте!

Для обновления версии ГИС Конструктор отправьте, пожалуйста, запрос на нашу почту ([URL=mailto:panorama@gisinfo.ru]panorama@gisinfo.ru[/URL]).
Идентичность результатов mapPaintToXImage, В рамках 2 процессов результаты вызова функции mapPaintToXImage не идентичны
 
Здравствуйте!

Уточните, пожалуйста, на каких данных воспроизводится данное поведение?
Возможно ли передать нам эти данные для анализа и небольшой пример с отрисовкой конкретного фрагмента карты?

С помощью какого средства Вы производите сравнение?

Спасибо!
Проблемы с отрисовкой карты в принтерном растровом виде
 
Здравствуйте!

[QUOTE]Сергей написал:
Установив функции обратного вызова, аналогично qdmwina.cpp, и используя MAPAPI, это все же можно реализовать самим, не изменяя библиотеки?[/QUOTE]
В данной версии ГИС Конструктор отсутствовала возможность установить в ГИС-ядро с помощью MAPAPI функции отрисовки принтерного вида (функции mapDrawSolidLine, mapDrawDashLine и подобные появились в более поздних версиях ГИС Конструктор).
Печать карть программным способом под операционной системой МСВС
 
Здравствуйте!

Получившийся файл можно прикрепить с помощью ссылки на внешний файлообменник.

Если выполнить печать с помощью использования штатного диалога печати (из состава ГИС Оператор 12 для Linux или компонента печати ГИС Конструктор), результат получится подходящий для Вас с точки зрения полей листов?
Проблемы с отрисовкой карты в принтерном растровом виде
 
Здравствуйте!

В ГИС Конструктор версии 11.6.0 еще не был реализован принтерно-растровой тип отображения карты.
При необходимости мы можем выполнить обновление ГИС Конструктор в рамках технической поддержки.
Печать карть программным способом под операционной системой МСВС
 
Здравствуйте!

В данном случае выполняется динамическая подгрузка функции вызова диалога из библиотеки libqdmapqtfrm.so.
Скорее всего вылет происходит из-за того, что ГИС Конструктор версии 11 использует при работе Qt 4 (и библиотека mapqtfrm в частности). В то время как сборка ГИС-приложения производится на основе библиотек Qt5.

Посмотреть используемую библиотекой mapqtfrm версию Qt можно с помощью команды:[CODE]ldd /usr/lib/libqdmapqtfrm.so | grep -i qt[/CODE]
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 53 След.



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

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