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

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
Zapis do pliku pdf zaznaczonych obiektów w kolejności.
Autor Wiadomość
welmal 
Początkujący
welmal


Wersja CorelDRAW: x7
Wiek: 49
Dołączył: 22 Kwi 2016
Posty: 1
Skąd: Kraków
Wysłany: 22 Kwiecień 2016, 09:55   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 



Pomógł: 402 razy
Dołączył: 24 Gru 2010
Posty: 4551
Skąd: Grodzisk Mazowiecki
Wysłany: 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ł.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.09 sekundy. Zapytań do SQL: 13