Макрос reSaveCMX
Макросы и скрипты для CorelDRAW и Photo-Paint | Автор: Sancho | Ср, 19.08.2009, 11:09/03:08
Для чего это нужно: Как и в любой большой программе с собственным форматом хранения данных, в файлах CorelDRAW иногда накапливается различная ненужная информация - мусор. Например, цветовые стили (хотя иногда они полезны). Это сказывается на вес файла и на время работы таких операций с ним, как открыть, копировать, вставить. В CorelDRAW Х4, со вторым сервис паком, решили проблему торможения при работе с файлами в которых много цветовых стилей. Однако сами стили никуда из файла не исчезают, и порой добавляют к файлам, в несколько сотен килобайт, несколько мегабайт.
Лечится это пересохранением в формат CMX. Благодаря простому макросу reSaveCMX, это делается нажатием одной кнопки.
Sub reSaveCMX()
If ActiveDocument Is Nothing Then Beep: Exit Sub
Dim expopt As StructExportOptions, expflt As ExportFilter, d As Document, s$
Set expopt = CreateStructExportOptions
Set d = ActiveDocument
s = d.FilePath & d.Name & ".cmx"
Set expflt = ActiveDocument.ExportEx(s, cdrCMX6, cdrAllPages, expopt)
expflt.finish
d.Close
Set d = OpenDocument(s)
Dim SaveOptions As StructSaveAsOptions
Set SaveOptions = CreateStructSaveAsOptions
With SaveOptions
.EmbedVBAProject = False
.Filter = cdrCDR
.IncludeCMXData = False
.Range = cdrAllPages
.EmbedICCProfile = False
.Version = cdrCurrentVersion
End With
d.SaveAs d.FilePath & d.Name & ".cdr", SaveOptions
VBA.FileSystem.Kill s
End Sub
Автор: Sancho
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Всё бы хорошо, только при пересохранении многостраничного документа остаётся лишь 1-ая страница, а ее размер задается как А4, независимо от того, каким он был до этого.
В целом, хорошая идея, но требует доработки. Тем не менее автору моё почтение
а вообще было бы прикольно доработать таким образом
файл сохраняется в смх формат, а потом оттуда пересохраняется в сдр формат, с последующим удалением смх
правда, что делать с многостраничным документом?
так так и делает :) просто CMK видимо не поддерживает многостраничность. Поделать то конечно можно, и очень даже просто. Будет время, доработаю :)
незнаю почему, но у меня получается сделать .CMX многостаничным... когда я пересохраняю.. .CDR в .CMХ в ручную... после чего я закрываю открытый файл.. затем открываю File>Open... (ctrl+o) файл открывается многостранично!.. размер листа правда изменяется.. поменять не сложно... псоле этого я снова сохраняю.. в .CDR.... все работает отлично... файл летать начинает... :)
P.S. возможно ли это сделать одним нажатием??