Нужен макрос - сброс overprint

Статус
Закрыто для дальнейших ответов.

Henyk

Участник
Топикстартер
Сообщения
166
Реакции
95
Надеюсь коллеги-допечатники поддержат :)

Задача: найти в заливках и обводках всего документа цвет CMYK= 0,0,0,0 aka white с атрибутом overprint и заменить на него же но без оного атрибута.

PS
Вакуленковский Color Replacer overprint "честно" сохраняет что в этом конкретном случае неприемлемо
 

Asmussen

15 лет на форуме
Сообщения
143
Реакции
47
Ответ: Очень нужен макрос

Вам для какого Корела?
У меня есть макрос собственного написания, который ищет всякие проблеммы, в том числе и оверпринты. Он еще не готов для массового использования, но если Вам срочно надо могу выслать то что есть сейчас, поиск и замена оверпринтов в нем работает, пишите в личку.
 

Henyk

Участник
Топикстартер
Сообщения
166
Реакции
95
Ответ: Очень нужен макрос

Естественно ХЗ :)
Щас сконтактируемся...
 

banIDit

I love this game!
Сообщения
1 160
Реакции
241
Ответ: Очень нужен макрос

Задача: найти в заливках и обводках всего документа цвет CMYK= 0,0,0,0 aka white с атрибутом overprint и заменить на него же но без оного атрибута.
Можно же стандартной функцией Replace Objects, replace a color
Find 0.0.0.0
Replace 0.0.0.1
Потом обратная операция, что, в принципе, не обязательно. Не подходит способ?
 

knower

Валерий Кнауэр
15 лет на форуме
Сообщения
1 006
Реакции
18
Ответ: Очень нужен макрос

banIDit, +1 :)
 

V.Wolf

Участник
Сообщения
63
Реакции
0
Ответ: Очень нужен макрос

Я вообще чего-то не въезжаю...
Edit--Find and Replace--Begin a new search--next--fills--uniform color--next--specific uniform fill color (white) OVERPRINT -- ON! ВСЕ! В чем проблема?
 

knower

Валерий Кнауэр
15 лет на форуме
Сообщения
1 006
Реакции
18
Ответ: Очень нужен макрос

В "Replace" нет "Begin a new search".
Он есть только в "Find", а это грозит разгруппировкой и ручным снятием оверпринтов на каждой станице.
 

kerch

Участник
Сообщения
127
Реакции
0
Ответ: Очень нужен макрос

Код:
Sub Overprint()
    ProcessShapes ActivePage.Shapes
    MsgBox "Операция выполнена."
End Sub

Sub ProcessShapes(ss As Shapes)
    Dim s As Shape    
    For Each s In ss
        If s.Type = cdrGroupShape Then
            ProcessShapes s.Shapes
        ElseIf s.Fill.UniformColor.CMYKCyan = 0 And s.Fill.UniformColor.CMYKMagenta = 0 And s.Fill.UniformColor.CMYKYellow = 0 And s.Fill.UniformColor.CMYKBlack = 0 Then
            s.OverprintFill = False
        End If
        
        If s.Outline.Type = cdrOutline Then
            If s.Outline.Color.CMYKCyan = 0 And s.Outline.Color.CMYKMagenta = 0 And s.Outline.Color.CMYKYellow = 0 And s.Outline.Color.CMYKBlack = 0 Then
                s.OverprintOutline = False
            End If
        End If
    Next s
End Sub

Не тестировал особо. За 5 минут накидал. Вроде должно работать с группами.
 

Asmussen

15 лет на форуме
Сообщения
143
Реакции
47
Ответ: Очень нужен макрос

V.Wolf сказал(а):
Я вообще чего-то не въезжаю...
Edit--Find and Replace--Begin a new search--next--fills--uniform color--next--specific uniform fill color (white) OVERPRINT -- ON! ВСЕ! В чем проблема?
Find and Replace не особенно удобен для частого использования, а допечатная подготовка может предполагать большой объем ежедневно обрабатываемых файлов.
Через Find and Replace придется отдельно проверять Fills и Outlines, а макрос можно придумать половчее, плюс других полезностей туда еще навставлять и все это будет висеть на одной кнопочке. :)
 

Asmussen

15 лет на форуме
Сообщения
143
Реакции
47
Ответ: Очень нужен макрос

kerch сказал(а):
Не тестировал особо. За 5 минут накидал. Вроде должно работать с группами.
Не хотелось бы показаться не вежливым, придираясь к набросанному за 5 минут коду, всеже поделюсь некоторыми наблюдениями, может кому-то пригодиться. :)

Сравнивать между собой цвета лучше с помощью метода IsSame.
Те задать где-то нужный цвет, к примеру "White.CMYKAssign 0, 0, 0, 0" , а потом просто сравнивать "If s.Fill.UniformColor.IsSame(White) Then" .
Получим более компактный и красивый код и работает это на порядок быстрее, что тоже не лишнее.
 

kerch

Участник
Сообщения
127
Реакции
0
Ответ: Очень нужен макрос

Спасибо. Учту :)
 
Статус
Закрыто для дальнейших ответов.