Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/64: Рейтинг темы: голосов - 64, средняя оценка - 4.75
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104

Поворот вставленной картинки в MS Word 2000

22.02.2013, 10:38. Показов 12467. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый!

Столкнулся намедни с такой проблемой - после печати изображения с помощью виртуального принтера в файл .jpg и последующей вставки его в MS Word картинка вставляется повернутой по часовой стрелке на 90 градусов.
Путем экспериментов выяснил - при печати на виртуальном принтере картинка в нормальном положении. И ворд тоже их не переварачивает. Остаеться одно - винда. Если напечатанную картинку перевернуть до вставки в офис - то и в офисе будет она в норм положении.

Пробовал перевернуть в офисе. Вставляеться по умолчанию как inlineshape, который поворачивать нельзя. Конвертировал в shape (.ConverToShape) - уже есть метод поворота (.rotation и .incrementrotation). При использовании .incrementrotation ничего не происходит, а при .rotation ВБА ругаеться "Runtime Error '70' Permission Denied". Использование этого самого макроса в 2007 и 2010 отлично переварачивают картинку. А в 2000\2003 в окне настроек изображения вообще заблокирован ввод градусов для поворота изображения.

Остаеться один вариант - переварачивать изображение до вставки в офис.

Вопрос заключаеться в следующем: каким образом можно перевернуть картинку в папке? (Что то типа функици на 7ке - в контекстном меню "Повернуть изображение по\против часовой стрелки на 90 градусов)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2013, 10:38
Ответы с готовыми решениями:

Как очистить IFRAME от только что вставленной картинки?
Вставляю в документ IFRAME: <IFRAME NAME='ViewImages' id='ViewImagesID' SRC='about:blank' WIDTH='530' HEIGHT='100%'></IFRAME> ...

Как автоматически в тексте док-та Word 2007 вставлять значение ячейки вставленной Excel?
Есть документ Word 2007 с вставленной Excel 2007. Надо сделать так, чтобы значение формулы из ячейки I1 Excel автоматически добавлялось в...

Поворот картинки
помогите плиз: private void Tableprivate void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)//povorotButton { ...

16
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,577
22.02.2013, 13:24
Rydo, выложите Word-документ с рисунком, который нужно повернуть, и покажите фрагмент вашего кода, с помощью которого вы поворачиваете.

Если рисунок секретный, то вставьте любой рисунок, добейтесь, чтобы возникала ошибка, и выложите Word-документ с этим рисунком на Форуме.
0
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104
22.02.2013, 16:27  [ТС]
Ничего секретного) банальный принтскрин. Только это все происходит в MS Word 2000.

Код следующий:

Вставка картинки в word

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub pastepicturetoword()
Dim wrd As word.Application
On Error Resume Next
'подключаемся к запущенному офису
Set wrd = GetObject(, "Word.Application")
If Err Then
   MsgBox "Нет запущенных экземпляров MS Word."
   Set wrd = Nothing
   Exit Sub
 Else
'убираем отступ
wrd.Selection.ParagraphFormat.FirstLineIndent = 0
 
'вставляем картинку
wrd.Selection.InlineShapes.AddPicture FileName:= _
        "C:\printed.jpg", LinkToFile:= _
        False, SaveWithDocument:=True
 
'выделяем картинку
wrd.Selection.TypeBackspace
 
'задание черно-белого и яркость\контрастность
With wrd.Selection.InlineShapes.Item(1).PictureFormat
      .ColorType = 3
      .Brightness = 0.3
      .Contrast = 0.7
End With
 
'удаление файла
Kill "C:\printed.jpg"
Kill "C:\stop.txt"
 
End If
Set wrd = Nothing
End Sub
Код поворота:

Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Procedure_1()
 
    Dim myShape As Word.Shape
 
 
        Set myShape = Selection.InlineShapes(1).ConvertToShape
 
        'myShape.IncrementRotation -90# 'никакой реакции
        myShape.Rotation = -90
End Sub

0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,577
22.02.2013, 16:31
Rydo, выложите на Форуме Word-документ со скриншотом. Только сначала убедитесь, что макрос для этого скриншота не работает.
0
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104
22.02.2013, 16:32  [ТС]
Сам документ значения не имеет. Новый документ, принтскрин, ctrl+V. вот исходный документ для поворота.
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,577
22.02.2013, 16:32
Пункт 1

Rydo, у меня работает поворот рисунков в Word 2003.


Пункт 2

Rydo, команду On Error Resume Next сопровождайте командой On Error GoTo 0, а то вы хотите пропустить ошибку в одном месте кода, а в итоге у вас по всему коду не будут отслеживаться ошибки.
0
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104
22.02.2013, 16:36  [ТС]
В 2010 Офисе при тех же операциях все отлично работает

0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,577
22.02.2013, 16:38
Rydo, у меня работает этот код в "Word 2003". В программе "Word 2000" не смогу проверить.
Visual Basic
1
2
3
4
5
6
7
8
9
Sub Procedure_1()
 
    Dim myShape As Word.Shape
 
    Set myShape = Selection.InlineShapes(1).ConvertToShape
    
    myShape.Rotation = -90
    
End Sub
0
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104
22.02.2013, 16:44  [ТС]
Цитата Сообщение от Скрипт Посмотреть сообщение
Пункт 1

Rydo, у меня работает поворот рисунков в Word 2003.
Да, действительно работает. Странно что когда прошлый раз тестировал не срабатывало(



Цитата Сообщение от Скрипт Посмотреть сообщение
Пункт 2
Rydo, команду On Error Resume Next сопровождайте командой On Error GoTo 0, а то вы хотите пропустить ошибку в одном месте кода, а в итоге у вас по всему коду не будут отслеживаться ошибки.
Спасибо, на будущее учту.

Что же делать с 2000 офисом? Как разблокировать заветный поворот?
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,577
22.02.2013, 16:55
Пункт 1

Rydo, нужно искать способы, как предварительно все рисунки сначала обработать, а потом уже вставлять в Word-документ. На Форуме кажется уже это обсуждалось. Может кто-нибудь подскажет что-нибудь.

Может быть в Гугле поискать по запросу: пакетная обработка рисунков. Что-то в этом роде. Точно не знаю.


Пункт 2

Если хотите средствами "VBA" сделать, то можно попробовать использовать библиотеку: Tools - References... - Microsoft Windows Image Acquisition Library (файл "wiaaut.dll"). Раннее и позднее связывание для двух объектов из этой библиотеки: WIA.ImageFile и WIA.ImageProcess.
1
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104
22.02.2013, 16:59  [ТС]
Спасибо! Попробую!

Думал GDI+ уже использовать. Если с VBА получиться - будет вообще здорово!
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,577
22.02.2013, 17:06
Rydo, справку по редким библиотекам сложно найти, даже на английском языке. Если библиотека от организации "Microsoft", то можно посмотреть на сайте "MSDN", сделав там поиск по какой-нибудь фразе.
Иногда есть небольшая справка и в "VBA".

Чтобы посмотреть справку по членам библиотеки "Microsoft Windows Image Acquisition Library" в "VBA" сделайте следующее:
  1. подключите сначала библиотеку в Tools - References...;
  2. View - Object Browser;
  3. в верхнем поле выберите WIA;
  4. внизу выбирайте элементы и ещё ниже читайте примерное описание по выбранному элементу (см. скриншот).
Миниатюры
Поворот вставленной картинки в MS Word 2000  
1
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,577
22.02.2013, 17:08
Цитата Сообщение от Rydo Посмотреть сообщение
Думал GDI+ уже использовать.
не знаю, что такое GDI+, но если в "VBA" не получается что-то сделать, то есть два пути:
  1. подключить какую-нибудь библиотеку;
  2. использование API-функции.
0
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104
22.02.2013, 17:38  [ТС]
Цитата Сообщение от Скрипт Посмотреть сообщение
Пункт 1
Если хотите средствами "VBA" сделать, то можно попробовать использовать библиотеку: Tools - References... - Microsoft Windows Image Acquisition Library (файл "wiaaut.dll"). Раннее и позднее связывание для двух объектов из этой библиотеки: WIA.ImageFile и WIA.ImageProcess.
В WinXP данная библиотека отсутствует, а то что в Microsoft Windows Image Acquisition Library - судя по методам - работа с устройствами.
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,577
22.02.2013, 17:43
Rydo, я ещё ни разу не использовал библиотеку "Microsoft Windows Image Acquisition Library", поэтому не могу ничего про неё сказать. В интернете прочитал про эту библиотеку и сделал у себя заметку.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
22.02.2013, 18:12
Да, Word 2000 не умеет поворачивать картинки.
Пакетно можно обработать картинки с помощью IrfanView, XNView и др. бесплатных "смотрелок".
IrfanView можно управлять через командную строку, у XNView, кажется, есть API.
1
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104
22.02.2013, 18:37  [ТС]
Спасибо! Придумал по другому. Загружаю в Image, по известным алгоритмам поворота в нем поварачиваю на сколько мне нужно, пакую в библиотеку. жаль нельзя универсально сделать для файлов на диске\буфера обмена, хотя над этим подумаю))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.02.2013, 18:37
Помогаю со студенческими работами здесь

Поворот картинки с сохранением
Приветствую. Как развернуть картинку так, чтобы при сохранении на диск она оставалась развернутой, т.е. развернуть не визуально, а чтобы...

Анимированный поворот картинки
Каким образом в javascript можно создать плавный поворот картинки на 8 градусов при наведении мыши. Только без использования CSS.

поворот картинки по кнопке
необходимо реализовать поворот картинки(которую мы уже имеем на форме) на 90 градусов(чтобы можно было несколько раз нажать на кнопку) по...

Поворот картинки в Image
А возможно как то повернуть картинку в image? и есть какие ллибо альтернативы.чтоб сделать чтоб оно не моргало

Поворот картинки каждую минуту
Суть программы в том, чтобы на форме отображалась картинка с песочными часами. Песок «высыпается» в течение 1 минуты. Затем картинка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru