Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
1

Экспорт изображений из Corel Draw

09.01.2013, 12:43. Просмотров 4556. Ответов 3
Метки нет (Все метки)

Известен ли кому-нибудь способ извлечения растровых объектов из документов Корела и сохранения их в отдельные файлы (jpg, например)?
В документации по части данного класса объектов ни слова о файлах.
Да и сам Corel не позволяет делать подобное через copy + paste.
Насколько понимаю, это можно каким-то образом реализовать через общие средства VBA, но ничего не могу толком нагуглить.
Приложу документацию по программированию макросов в Corel из непонятных соображений.
0
Вложения
Тип файла: pdf Macro Programming Guide.pdf (2.01 Мб, 55 просмотров)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2013, 12:43
Ответы с готовыми решениями:

Информация о VBA для Corel Draw
народ подскажите плз. где можна найти инфу о VBA для Corel Draw ну очень надо.

Поиск координат узлов кривых в Corel Draw 12
Здравствуйте. В результатах поиска нужной информации не нашел и решил создать новую тему. Надеюсь,...

Сохранение и загрузка данных в Combobox Corel Draw X6
Доброго времени! Задача в том, чтоб при вводе нового параметра значение сохранялось в отдельный...

VBA for Corel Draw - куда идут эти определения?
Есть исходник простенького макроса (не мой) для Corel Draw, структура показана на скриншоте, то...

3
Заблокирован
09.01.2013, 13:05 2
Лучший ответ Сообщение было отмечено как решение

Решение

С CorelDraw11 шла такая библиотека - \program files\corel\corel graphics 11\draw\GMS\FileConverter.gms
Приложил на всякий случай, может что и пригодится?
0
Вложения
Тип файла: zip FileConverter.zip (141.6 Кб, 41 просмотров)
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
09.01.2013, 13:53  [ТС] 3
Эх, использую 5 версию.
Подозреваю, что не совсем то. На всякий случай уточню.
Имеется файл с сотнями страниц. На каждой имеется растровый объект (картинка). Каждую такую внутреннюю картинку нужно извлеч и сохранить в виде отдельного файла.

После работы с вордом вспоминается такая удобная вещь как OpenXML - открываешь документ Винраром, а там все картинки уже лежат в жпгах и пнг.
Может, в Кореле тоже есть аналогичная вещь?
Перебрал часть форматов - ничего такого.
Стандартный cdr открывается архиватором, но всё кроме превью и каких-то метаданных лежит во внутреннем шифровоном файле.
0
176 / 61 / 3
Регистрация: 17.11.2011
Сообщений: 318
09.01.2013, 15:53 4
Цитата Сообщение от InferernumDeus Посмотреть сообщение
Эх, использую 5 версию.
В этой версии программирование идёт ещё не на VBA, а на CorelScript. Это отдельная песня, хотя он очень похож на VBA. На сколько разбираюсь, VBA появилась в CorelDraw только с 8-й версии.

...
В более новых версиях точно есть функция экспорта растрового изображения. Выглядит примерно так:
Visual Basic
1
2
Set expflt = ActiveDocument.ExportBitmap(fPathName & ".tif", cdrTIFF, cdrAllPages, cdrRGBColorImage _
                            , 4960, 7015, 600, 600, cdrNormalAntiAliasing, False, False, True, False, cdrCompressionLZW)
С помощью VBA обойти все объекты в файле (и проверить на предмет необходимости экспорта) можно примерно так
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Private Sub RoundAllFile()
    ' обработка всего файла
    Dim lr As CorelDRAW.Layer
    Dim pg As CorelDRAW.Page
    
    For Each pg In ActiveDocument.Pages
        pg.Activate
        For Each lr In pg.Layers
            If CheckLayerProcessing(lr) Then
                If lr.Shapes.Count > 0 Then Call CheckShapes(lr.Shapes)
            End If
        Next lr
    Next pg
    
    Set lr = Nothing
    Set pg = Nothing
End Sub
 
 
Private Function CheckShapes(shps As CorelDRAW.Shapes) As Boolean
    Dim shp As CorelDRAW.Shape
    Dim pwc As CorelDRAW.PowerClip
    
    
    On Error Resume Next
     
    For Each shp In shps
                 Select Case shp.Type
                Case Is = cdrShapeType.cdrNoShape   ' пропускаем
                Case Is = cdrShapeType.cdrGroupShape
                    CheckShapes = CheckShapes(shp.Shapes)
                    
                Case Is = cdrShapeType.cdrBitmapShape
                    ' здесь обрабатываем найденный растровый объект
                
                End Select
                
                Set pwc = shp.PowerClip
                
                If Not pwc Is Nothing Then
                    ' входим в режим редактирования содержимого PowerClip-а
                    pwc.EnterEditMode
                    
                    ' опускаем с функцию содержимое PowerClip-а
                    CheckShapes = CheckShapes(ActiveLayer.Shapes)
                    
                    ' выходим из режима редактирования содержимого PowerClip-а
                    pwc.LeaveEditMode
                    
                    Set pwc = Nothing
                End If
 
    Next shp
    
    If Not shp Is Nothing Then Set shp = Nothing
End Function

Посмотрите. Сможет сможете приспособить под свои нужды.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2013, 15:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Corel Draw, как выделить все группы в документе?
Всем привет, подскажите пожалуйста, как выделить все группы в документе в одно выделение?...

Corel Draw. "Сохранить как" в туже папку с тем же именем, в другой версии
Здравствуйте. Часто приходится пересохранять файлы .cdr из 17 в 13 версию. С помощью...

Corel draw x6
Всем привет Переустановил одинаковую винду себе и подруге (семерку 64-тную) и теперь при попытке...

Corel DRAW 12 не работает
я не знаю в какой раздел писать эту тему, проблема в том что когда я открываю корел драв он не...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.