SP2 - фантомный аутлайн

  • Автор темы Автор темы sander
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

sander

Топикстартер
15 лет на форуме
Сообщения
1 562
Реакции
137
После установки SP2 ,при масштабировании шрифта без аутлайна он откуда-то берётся. Black hairline. Масштабировал в группе (растр+вектор+текст)
 
Ответ: SP2 - фантомный аутлайн

Аналогично, только обводка появляется белая на белом тексте. Что делать, подскажите? Или сносить SP2?
 
Ответ: SP2 - фантомный аутлайн

У меня всё нормально. Ни чёрных ни белых обводок не появляется.
А файл случайно не из старых версий?
 
Ответ: SP2 - фантомный аутлайн

тема - есть.
проверьте в настройках аутлайна, невключена ли галочка - "Scale With Image"

Суть бага (а возможно и фичи, я хз) в чем, был шрифт с аутлайном и в ключенной "Scale With Image", убираем аутлайн в ноль... - а теперь попробуем уменьшить\увеличить текст... - опа, и аутлайн снова наместе...
 
Ответ: SP2 - фантомный аутлайн

О! дома проверю
 
Ответ: SP2 - фантомный аутлайн

xplight
Да, действительно, при включённой галке Scale With Image - "тема - есть."
Ну походу - налицо БАГ. На фичу это вряд ли похоже.
 
Ответ: SP2 - фантомный аутлайн

может поможет такой вот макрос - запускается сам если выключить DelayLoadVBA - при открытии доков *должен* снимать атрибут Scale с объектов без обводки

сам не тестировал, простите
 

Вложения

Ответ: SP2 - фантомный аутлайн

было время, исправил, вот

Код:
Sub SP2FixScaledOutline()
   Dim p As Page, cnt&, numPages&, cnt0&, s$, res As New ShapeRange, oldP As Page, o As New Outline
   If ActiveDocument Is Nothing Then Exit Sub
   
   On Error Resume Next
   ActiveDocument.BeginCommandGroup "Fix SP2 phantom outline"
   Optimization = True
   EventsEnabled = False
   ActiveDocument.SaveSettings
   ActiveDocument.PreserveSelection = False

   Set oldP = ActivePage
   numPages = ActiveDocument.Pages.Count
   For Each p In ActiveDocument.Pages
      p.Activate: SP2FixScaledOutline2 p.Shapes.FindShapes, res
      If cnt0 <> res.Count Then s = s & "Page " & CStr(p.Index) & " outlines converted: " _
         & CStr(res.Count - cnt0) & vbCrLf: cnt0 = res.Count
   Next p
   
   o.Type = cdrNoOutline: o.Width = 0: o.ScaleWithShape = False
   If res.Count > 0 Then
      res.SetOutlineProperties , , , , , , cdrFalse
      res.SetOutlineProperties 0, , , , , , cdrFalse
      res.ApplyOutline o
      End If
      
   ActiveDocument.PreserveSelection = True
   ActiveDocument.RestoreSettings
   EventsEnabled = True
   Optimization = False
   Application.CorelScript.RedrawScreen
   ActiveDocument.EndCommandGroup
   
   oldP.Activate: res.CreateSelection
   'If res.Count > 0 Then MsgBox CStr(res.Count) + " phantom scaled outlines cleared" + vbCrLf + s
   End Sub

Sub SP2FixScaledOutline2(shs As ShapeRange, res As ShapeRange)
   Dim sh As Shape
   On Error Resume Next
   For Each sh In shs
      If sh.Outline.Type = cdrNoOutline Then _
         If sh.Outline.ScaleWithShape Then res.Add sh
      If Not sh.PowerClip Is Nothing Then _
         SP2FixScaledOutline2 sh.PowerClip.Shapes.FindShapes.All, res
   Next sh
   End Sub
 

Вложения

Ответ: SP2 - фантомный аутлайн

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