Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пт Ноя 28, 2008 1:25 pm Заголовок сообщения: Дубль окна в Word |
|
|
Привет всем.
Никак не могу победить такую вещь. В МИ, с помощью комманды "Дубль окна" можно перетащить выбранное окно в MS Word. Причем перетаскивается туда объект Mapinfo.Map, который можно при двойном нажатии отредактировать.
Вопрос, как такую вещь сделать программно?
Делаю все через делфи.
Пока в голове только два варианта:
1. Создать в ворде объект, открыть в нем нужный рабочий набор (можно получить из WindowInfo). Но проблема в том, что я не могу найти описание методов Mapinfo.Map, как оказалось это не Mapinfo.Application и открыть в нем что-то кроме таблицы у меня не получилось.
2. Вся эта ботва у МИ без проблем проходит через буффер обмена, поэтому, можно, по идее скопировать окно в буффер, а потом в ворде его вставить. Но тут возникает проблема, как программно это окно в МИ скопировать в буффер?
Ну есть еще и треттий, не совсем подходящий вариант, но все же, а именно, вставлять в ворд изображение окна. Однако при программном экспорте (я тружусь в MB 5.5) нельзя изменить dpi изображения, поэтому в ворде качество совсем не гуд.
Возможно есть какой то другой путь, о котором у меня ума додуматься не хватило. В общем, буду признателен всем кто поможет в решении данной задачи.
Заранее спасибо. |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Пн Дек 01, 2008 4:11 pm Заголовок сообщения: |
|
|
Ответы на каждый вариант:
1) Импортируй библиотеку типов (Type Library) от MapInfo.Map в Delphi
и посмотри какие методы есть у этого объекта.
2) Run Menu Command M_EDIT_COPY
3)
Save Window window_id
As filespec
Type filetype
[ Width image_width [ Units paper_units ] ]
[ Height image_height [ Units paper_units ] ]
Есть Width и Height, есть paper_units. В dpi сам переведешь? |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Ср Дек 03, 2008 6:53 am Заголовок сообщения: |
|
|
2 Андрей Могильный
1. Спасибо, попробую
2. Пробовал эту комманду, точнее Run Menu Command 203, в окне MapBasic, она работает только для выделенных объектов. Для окна в меню появляется отдельная команда "Копировать окно", вот ее я не нашел
3. Насколько я понимаю dpi отвечает за качество формируемого растра, а width и height за размер охватываемой карты. Увеличивая width и height, или меняя единицы, я меняю масштаб, но не как не качество, инче зачем бы в поздних версиях ввели в комманду Save Window опцию Resolution. Хотя конечно могу и ошибаться |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Ср Дек 03, 2008 9:46 pm Заголовок сообщения: |
|
|
2. А когда нет выделенных объектов? По идее должна копировать карту. Сам не пробовал.
3. Ну dpi - это ж количество точек на дюйм. Т.е. величина, которая является множителем при переводе метрических размеров в пиксели. Попробуй для своей задачи - выгрузи в больших width и heigth и вставь в Word, результат понравится :) Лучше всего экспортировать в EMF конечно. |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Чт Дек 04, 2008 11:18 am Заголовок сообщения: |
|
|
Андрей Могильный
Конечно же я все это пробовал, не стал бы тут народ по пустякам беспокоить :)
> 2. А когда нет выделенных объектов? По идее должна копировать карту. Сам не пробовал.
Я тоже так думал, а не хотит :(
> Попробуй для своей задачи - выгрузи в больших width и heigth и вставь в Word, результат понравится :)
Допустим есть окно карты, с подписями, размером 5х5 см. Хочу вставить его в ворд. При экспорте ставлю размер окна в 10 раз больше. В итоге получаю растр размером 50х50. В ворде задаю размер изображения 5х5 - все подписи уменьшаются в 10 раз, т.к. мы растр уменьшаем :)
При использовании dpi, такого не происходит
> 1) Импортируй библиотеку типов (Type Library) от MapInfo.Map в Delphi
Что-то тне получается, для импорта ведь нужен tlb-файл? а он есть только для Mapinfo. Его импортировал, в нем не нашел интерфейса на Map, мож че сделал не так? :( |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Чт Дек 04, 2008 6:21 pm Заголовок сообщения: |
|
|
> Допустим есть окно карты, с подписями, размером 5х5 см. Хочу вставить его в ворд. При экспорте ставлю размер окна в 10 раз больше. В итоге получаю растр размером 50х50. В ворде задаю размер изображения 5х5 - все подписи уменьшаются в 10 раз, т.к. мы растр уменьшаем :)
Подожди-подожди. Ты вначале поставил явно размер 5x5 см (!) А дальше почему-то опустил размер. 50x50 - это в чем? И дальше 5x5?
Смотри, есть картинка 5x5 см в MapInfo, она условно занимает 100x100 пикселей при стандартном разрешнии экрана 96 dpi. Тебе надо в ворде ее размером 10x10 см. Для этого экспортируй ее в размере 200x200 пикселей и вставляй в ворд, масштабируя ее до 10x10 см, все будет верно. Сплошные пропорции. |
|
Вернуться к началу |
|
|
Alex_Y
Зарегистрирован: 28.11.2008 Сообщения: 122
|
Добавлено: Пт Дек 05, 2008 5:28 am Заголовок сообщения: |
|
|
Андрей Могильный
все считаю в сантимертах
как раз задача стоит сделать так - есть в МИ окно 5 на 5, и вставить в ворд нужно 5 на 5. Если вставляю один к одному, то получаю 96 дпи, для получения 300 дпи, я width и height умножаю на 3.125, но при этом у меня размер изображения в ворде станет 15.625см при 96 дпи, так? далее, в ворде вставленную картинку я уменьшаю до размера 5 на 5, получаю свои 300 дпи, но, происходит уменьшение картинки, а соответственно и масштабирование объектов на ней. Все бы ничего, можно в МИ например изменить размер окна в 3.125 раза, тогда масштаб объектов в ворде будет тот который надо, только размер подписей при изменении окна не изменится, а поэтому при уменьшении размера картинки, их размер в ворде тоже уменьшится. Толщина линий, кстати, тоже меняется, а это не есть хорошо :( |
|
Вернуться к началу |
|
|
|