Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych

Makra - Zapis do pliku pdf zaznaczonych obiektów w kolejności.

welmal - 22 Kwiecień 2016, 09:55
Temat postu: Zapis do pliku pdf zaznaczonych obiektów w kolejności.
Witam,

Skleciłem makro zapisujące zaznaczone obiekty do plików pdf... Niestety zaznaczanie (i zapis) obiektów na stronie jest losowe. Jak napisać makro, aby kolejność zaznaczanych obiektów była ściśle określona od lewej do prawej następnie w dół i znów od lewej do prawej (Jak czytanie tekstu w książce)...

-------
Sub Macro1()
'Recorded 2016 - 4 - 21

Dim s As Shape, sr As ShapeRange
Dim i As Long, strName As String
Dim p As Page
Dim SaveOptions As StructSaveAsOptions
Set SaveOptions = CreateStructSaveAsOptions
With SaveOptions
.EmbedVBAProject = False
.Filter = cdrPDF
.Range = cdrSelection
.IncludeCMXData = False
.EmbedICCProfile = False
.Version = cdrVersion17
End With

EventsEnabled = False
i = 1

For Each p In ActiveDocument.Pages
p.Activate
Set sr = ActivePage.Shapes.All
For Each s In sr
s.CreateSelection
strName = "a_" & i
ActiveDocument.SaveAs "(ścieżka do zapisu plików)" & strName & ".pdf", SaveOptions
i = i + 1

Next s
Next p
eventsenable = True

End Sub
---------------
Pozdrawiam,

chezare - 26 Kwiecień 2016, 22:44

To jest z serialu, ploter strasznie się męczy jeżdżąc z góry na dół i od jednej strony do drugiej? Jeśli tak, to w wielu przypadkach nic nie da zmiana położenia obiektów w stosie, bo jak z lewej strony będzie obiekt który sięga z góry do dołu, to i tak nastąpi przejażdżka przez cały materiał.
Każdy obiekt we właściwościach ma informacje o położeniu i wielkości (get position i getsize). Wystarczy przelecieć przez wszystkie obiekty (For Each OBIEKT In ActivePage.Shapes … Next OBIEKT), zapisać informacje o wielkości i położeniu do tablicy i je posortować. Na podstawie posortowanych danych ustawić kolejność obiektów w stosie (OrderToBack. OrderToFront)
Tak bym to widział.


Powered by phpBB modified by Przemo © 2003 phpBB Group