prośba o pomoc z makro |
Autor |
Wiadomość |
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 11 Październik 2015, 11:37 prośba o pomoc z makro
|
|
|
Witam potrzebuję pomocy w stworzeniu makra, które zgrupuje elementy na każdej ze stron,
potem przeniesie je na stronę główną. Może bliżej, po otwarciu pliku pdf. z kilkoma stronami jako plik corela mam te strony każdą osobno,ale potrzebuję je mieć na jednej stronie tak aby można było je ułożyć obok siebie. |
|
|
|
|
Cysorz
Pomógł: 205 razy Dołączył: 01 Sty 2011 Posty: 3137 Skąd: Kraków
|
Wysłany: 11 Październik 2015, 20:43
|
|
|
No kilka razy to przeczytałem ale nadal nie wiem o co chodzi... |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 11 Październik 2015, 23:55
|
|
|
Tłumaczenie.
Jest wielostronicowy dokument w formacie pdf.
Po otwarciu takiego dokumentu w Corelu też mamy dokument wielostronicowy.
Kolega nie lubi przemieszczać się po kolejnych stronach dokumentu w Corelu (klawisze PgUp i PgDn) dlatego wszystko co jest w dokumencie chce ułożyć na jednej stronie.
Ja bym chciał zobaczyć jak na jednej stronie będzie wyglądał dokument, który w oryginale ma dajmy na to 50 stron.
To powinno być dosyć proste, tylko zadanie jest niedokładnie opisane.
Jak mają być układane te przenoszone strony? Załóżmy że jest ich 5, jak to ma wyglądać?
1 2 3 4 5,
a może
1
2
3
4
5,
albo
1 2
3 4
5,
tudzież
1 2 3
4 5,
a jest jeszcze kilka innych możliwości.
Sprawa druga.
Zawartość pdf wcale nie musi mieścić się na powierzchni strony,
albo może zajmować tylko jej fragment i co w takich przypadkach?
Co w przypadku kiedy kolejne strony w pdf mają różne wymiary? |
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 12 Październik 2015, 17:10
|
|
|
Sorki ale chciałem w miarę jak najkrócej opisać, ale po kolei.
Zakładając, że mam wydrukować na drukarce solventowej gdzie media (folia) na której drukuje mają 1m szerokości jakąś ilość zmiennych naklejek załóżmy o wymiarze 20cm x20 cm po wielu różnych próbach udało mi się opanować seryjne układanie ich z Excela do corela
poprzez pdf. wielostronicowy.
Jednak gdy importujemy pdf do corela są dwie opcje : albo wszystko na jedną stronę corela ale powstaje problem, gdyż strony nie są pogrupowane a wszystko jest na kupie inie da się ich porozkładać na formatce 1m z szerokości i dowolnej długości.
A gdy zaimportuję pdf 100 stronicowy na każdej stronie po jednej pozycji to 20cm x20cm to aby je poukładać na jednej stronie pięć z szerokości i 20 rzędów z wysokości trochę zajmuje.
A to przy wymiarze 20x20 a bywają 5cm x 2cm i tak 1000szt.
Stąd prośba o pomoc w stworzeniu makra które tylko by mi pogrupowało poszczególne strony
i przerzuciło to na pierwszą . No nie wspomnę już o rozłożeniu obok siebie format nie ważny dalej sobie poradzę. |
|
|
|
|
Cysorz
Pomógł: 205 razy Dołączył: 01 Sty 2011 Posty: 3137 Skąd: Kraków
|
Wysłany: 12 Październik 2015, 20:25
|
|
|
A po co rozkładać ręcznie do druku?
Przecież w opcjach druku jest taka możliwość... |
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 13 Październik 2015, 14:07
|
|
|
No własnie że nie ma gdyż puszczam do maszyny prosto z corela przez ripa (program drukarki) i drukuje.
Rip Center nie posiada mozliwosci ułożenia tylko zmiana parametròw wydruku.
Corel taż nie ma takiej możliwości stąd problem
A nie posiadam innego programu do obsługi drukarki wielkoformatowej, gdyż sprzedawana była z Rip Center |
|
|
|
|
Cysorz
Pomógł: 205 razy Dołączył: 01 Sty 2011 Posty: 3137 Skąd: Kraków
|
Wysłany: 13 Październik 2015, 17:30
|
|
|
Podczas wysyłania plików na drukarkę zaglądnij w opcje drukowania (Print Previev/Podgląd wydruku) i sprawdź co się dzieje z tymi ikonami, które oznaczyłem strzałkami. Mogą oczywiście być w innym miejscu, ale być muszą:
|
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 13 Październik 2015, 18:29
|
|
|
Ok ja to wszystko kumam i znam lecz zakres mojej pracy polega również na tym, że jest
potrzeba ażeby pliki które były wydrukowane były ułożone tak jak były wydrukowane.
Jest to plik wielorazowego użytku, który otwieram po roku i wiemy co było wykonane, a bywa że jest potrzeba powtórki.
Na co dzień od kilku lat tworzę pliki corela gdzie na głównej stronie mam zawartą całość
zamówienia klienta, nawet po kilka set naklejek czy tabliczek różnego wymiaru.
A ponadto w pliku nie ma jednakowych wymiarów tylko przysłowiowa sieczka którą
należy ułożyć względem siebie, tak aby zużyć jak najmniej materiału.
Stąd też była prośba o pomoc z makro. |
|
|
|
|
tegraf
Ekspert tegraf
Pomógł: 74 razy Dołączył: 21 Mar 2011 Posty: 1954 Skąd: Zielona Góra
|
Wysłany: 13 Październik 2015, 19:44
|
|
|
janusz1966 napisał/a: | jest potrzeba ażeby pliki które były wydrukowane były ułożone tak jak były wydrukowane. |
Możesz to jakoś... rozwinąć?
janusz1966 napisał/a: | Na co dzień od kilku lat tworzę pliki corela gdzie na głównej stronie mam zawartą całość zamówienia klienta, nawet po kilka set naklejek czy tabliczek różnego wymiaru. |
Do tego zdania mam prośbę o przykład takiego pliku, może być bez treści, same prostokąty, ułożone tak, jak do druku. |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 13 Październik 2015, 23:45
|
|
|
Wydrukowałeś setki różnych obrazków i co dalej?
Świstak siedzi i wycina nożyczkami te naklejki?
To co chcesz zrobić makrem wydaje się zadaniem nieskomplikowanym, ale impozycja, rozłożenie różnych kształtów na arkuszu tak żeby zajmowały jak najmniej miejsca to zadanie niezwykle skomplikowane. Mam wrażenie, że to co chcesz osiągnąć w całej tej pracy jest niewiele znaczącym uproszczeniem zadania. |
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 14 Październik 2015, 17:05
|
|
|
No właśnie, nie każdy grafik/drukarz to ciepła posadka 8 godzin przy jednym projekcie banera reklamowego.
Ale oki dla tych co mówiąc potocznie nie kumają pokoleji dam dwa przykłady pełne mojej codziennej pracy, załączam również poklei jpg. plus plik corela dla ciekawych.
Na początek łatwiejsze:
1. Klient daje wzór kks i lista w exelu , z której twożymy kks(etykiety) trzy wierszowe
dotego kolor odpowiedni i jeszcze odpowiednie piktogramy. I tak składamy w tym
przypadku 1480 etykiet ze zmienną tekstowa i graficzną. Tu zalączam tylko 500
2 po wykonaniu mozolnego kopiuj wklej rozkładam to na poszczegó,lne fragmenty jak widać w załącznikach do druku i drukujemy
3 Akurat w tym przypadku po wszystkim pozostaje porozcinanie tego na pojedyńcze nalepki.
I jak pisałem ten plik musi pozostać w bazie na kolejny okres w razie reklamacji lub dorobienia niekiedy doróbek.
W drugim przypadku początek podobny lecz mamy różne wielkości i musimy je porozkładać odpowiednio pod szablon do plotera tnącego gdyż są to strzałki kierunkowe.
Jednak wymiary strzałek powyżej 60cm tniemy rącznie na gilotynie.
I niedowiarki uwierzcie że niektórzy naprawdę pracują nad taką sieczką ja już od 10 lat dzień w dzień a wymiarówka, krztałty, i ilości są naprawde przeróżne a klient chce
różne rzeczy i szybko.
link do plików
https://drive.google.com/open?id=0B84fW47fWKL-TE84aU9MN1o5OFk |
|
|
|
|
Cysorz
Pomógł: 205 razy Dołączył: 01 Sty 2011 Posty: 3137 Skąd: Kraków
|
Wysłany: 14 Październik 2015, 18:30
|
|
|
You need permission? |
|
|
|
|
restauro
Wersja CorelDRAW: CorelDraw X4 ,X7
Pomógł: 574 razy Dołączył: 25 Lis 2009 Posty: 7680 Skąd: Gdynia
|
Wysłany: 14 Październik 2015, 19:18
|
|
|
Malutki napisał/a: | You need permission |
Jest ok.Klikasz i zapisuje się z chmury. |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 14 Październik 2015, 23:46
|
|
|
Nie jest ok, bo mój zabytkowy Corel nie otwiera takich cdrów. |
|
|
|
|
tegraf
Ekspert tegraf
Pomógł: 74 razy Dołączył: 21 Mar 2011 Posty: 1954 Skąd: Zielona Góra
|
Wysłany: 15 Październik 2015, 06:33
|
|
|
janusz1966 napisał/a: | po wielu różnych próbach udało mi się opanować seryjne układanie ich z Excela do corela poprzez pdf. wielostronicowy. |
To ostatnie zdanie mnie zaintrygowało w Twoim poprzednim mejlu. Ciekawy byłem tego sposobu przechodzenie z Excela do Corela poprzez... pdf.
janusz1966 napisał/a: | Klient daje wzór kks i lista w exelu , z której twożymy kks(etykiety) trzy wierszowe dotego kolor odpowiedni i jeszcze odpowiednie piktogramy. I tak składamy w tym przypadku 1480 etykiet ze zmienną tekstowa i graficzną |
janusz1966 napisał/a: | 2 po wykonaniu mozolnego kopiuj wklej |
Niestety, nie rozumiem, skąd ten pdf po drodze. To kopiuj/wklej jest (jak rozumiem) przy pobieraniu danych z arkusza i wklejaniu ich do Corela. Skoro masz te etykiety w Corelu i w Corelu robisz ich montaż, to skąd ten nieszczęsny pdf nagle się pojawia? Chyba nie publikujesz pdfa z Corela tylko po to, by go natychmiast zaimportować? |
|
|
|
|
restauro
Wersja CorelDRAW: CorelDraw X4 ,X7
Pomógł: 574 razy Dołączył: 25 Lis 2009 Posty: 7680 Skąd: Gdynia
|
Wysłany: 15 Październik 2015, 07:54
|
|
|
chezare napisał/a: | Nie jest ok, bo mój zabytkowy Corel nie otwiera takich cdrów. | Mam X4 i otwiera ,jeśli twoja wersja nie daje rady otwórz w INKSCAPE . |
|
|
|
|
tomek123
Bywalec tomek123
Wersja CorelDRAW: X7
Pomógł: 8 razy Dołączył: 06 Gru 2014 Posty: 34 Skąd: Tychy
|
Wysłany: 15 Październik 2015, 14:57
|
|
|
Opis problemu mnie przerósł i dlatego za bardzo się nie wczytywałem ale tak ogólnie może zadziała:
Kod: |
Public Sub UNION()
Dim s As Shape, x As Double, y As Double, doc1 As Document, doc As Document, y_pos As Double, x_pos As Double, d As Double
Optimization = True
For Each doc In Documents
doc.ActivePage.GetSize x, y
If x_pos = 0 Then
y_pos = y
Set doc1 = CreateDocument
doc1.name = "union"
doc1.Unit = cdrMillimeter
End If
doc.Unit = cdrMillimeter
Set s = doc.ActivePage.SelectShapesFromRectangle(-22600, 22600, 22600, -22600, False)
s.Group
s.GetPosition x_pos, d
s.Copy
Set s = doc1.ActiveLayer.Paste
s.SetPosition x_pos, y_pos - (y - d)
y_pos = y_pos - y
'doc.Close
Next
Optimization = False
End Sub
|
Przechodzi przez wszystkie otwarte dokumenty, grupuje to co w środku, kopiuje i przenosi do utworzonego dokumentu bazowego rozkładając w dół. Jak chcesz, żeby po skopiowaniu zamykał dokument, to usuń apostrof w linii |
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 16 Październik 2015, 17:18
|
|
|
odpowiedź dla kolegi tegrafa
jak już pisałem wcześniej dotąd używałem sposobu ( kopiuj w exelu około 10szt i wkleja do corela) i tak aż do końca zamówienia nawet kilkaset razy.
A chcąc ułatwić sobie pracę udało mi się opanować kopiowanie z exela dużej ilości danych
poprzez "wydruk seyjny" w corelu drukując to do pliku "pdf" i tu się zatrzymałem z problemem który jest w tym poście. |
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 16 Październik 2015, 17:19
|
|
|
Ach dla osób z corelem w wersi poniżej 13 zmieniłe pliki cdr. na dysku do wersi corel11 |
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 16 Październik 2015, 17:44
|
|
|
dla wszystkich chętnych walki z tematem na wcześniejszy link dysku wsadziłem plik cdr. o nazwie testowy.
Chodzi o to by jak pisałem na początku makro zgrupowało każdą ze stron i przeżuciło na strnę główną rozkładając dowolnie obok siebie.
Makro od Tomek123 działa na stronach otwartych w osobnych dokumentach, a ja potrzebuje
taki sam efekt ale w obrębie jednego dokumenty z wieloma stronami.
I dzięki za zainteresowanie.
https://drive.google.com/open?id=0B84fW47fWKL-TE84aU9MN1o5OFk |
|
|
|
|
tegraf
Ekspert tegraf
Pomógł: 74 razy Dołączył: 21 Mar 2011 Posty: 1954 Skąd: Zielona Góra
|
Wysłany: 16 Październik 2015, 19:19
|
|
|
janusz1966 napisał/a: | A chcąc ułatwić sobie pracę udało mi się opanować kopiowanie z exela dużej ilości danych poprzez "wydruk seyjny" w corelu drukując to do pliku "pdf" |
Teraz rozumiem. Ale - odsuwając na chwilę problem braku makra - nie lepiej to by było użyć do tej pracy jakiegoś dedykowanego programu do impozycji? |
|
|
|
|
tomek123
Bywalec tomek123
Wersja CorelDRAW: X7
Pomógł: 8 razy Dołączył: 06 Gru 2014 Posty: 34 Skąd: Tychy
|
Wysłany: 16 Październik 2015, 20:34
|
|
|
Faktycznie, rzadko używam stron wewnątrz dokumentu i nie zauważyłem:
Kod: |
Public Sub UNION()
Dim s As Shape, x As Double, y As Double, _
y_pos As Double, x_pos As Double, d As Double, b_union As Boolean, _
doc1 As Document, doc As Document, pg As Page, frame As Shape
Const zone As Long = 22600
Const create_frame As Boolean = True
b_union = False
Optimization = True
Set doc = ActiveDocument
doc.Unit = cdrMillimeter
For Each pg In doc.Pages
pg.GetSize x, y
If b_union = False Then
y_pos = y
Set doc1 = CreateDocument
doc1.name = "union"
doc1.Unit = cdrMillimeter
b_union = True
End If
If create_frame = True Then Set frame = pg.ActiveLayer.CreateRectangle(0, y, x, 0)
Set s = pg.SelectShapesFromRectangle(-zone, zone, zone, -zone, False)
s.Group
s.GetPosition x_pos, d
s.Copy
If create_frame = True Then frame.Delete
Set s = doc1.ActiveLayer.Paste
s.SetPosition x_pos, y_pos - (y - d)
y_pos = y_pos - y
Next
'doc.Close
Optimization = False
End Sub
|
powstaje nowy dokumet, tak chyba może zostać? ale jeżeli chcesz wynik w formie nowej strony wewnątrz tego źródłowego dokumentu, to też tak można zrobić, jeżeli to istotne oczywiście. |
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 17 Październik 2015, 15:35
|
|
|
Witam ponownie
Dla wszystkich zainteresowanych i dla Tomek123 - mako od kolegi tomek123 działa idealnie tak jak bym chciał i na pewno wiele innych osób, należy się wielkie dzięki.
Jest jeszcze mała prośba do tomek123 skoro to jego makro czy jest szansa dopisanie skryptu
po którym po około 25szt. układałoby w nowym słupku obok poprzedniego.
A to dlatego, że 50szt to jeszcze można przełożyć ale jak jest już setka to by się przydała taka możliwość w makro.
Lecz ogólnie rzecz biorąc temat o który mi chodziło został rozwiązany pomyślnie, zapewne nie raz użyję tego makra w mojej pracy. Raz jeszcze wielkie dzięki |
|
|
|
|
tomek123
Bywalec tomek123
Wersja CorelDRAW: X7
Pomógł: 8 razy Dołączył: 06 Gru 2014 Posty: 34 Skąd: Tychy
|
Wysłany: 18 Październik 2015, 01:08
|
|
|
Kod: |
Public Sub UNION()
Dim s As Shape, x As Double, y As Double, _
i As Integer, j As Integer, b_union As Boolean, _
doc1 As Document, doc As Document, pg As Page, frame As Shape
Const col_count As Integer = 25 'ilosc stron w kolumnie
b_union = False
i = 0
j = 0
Optimization = True
Set doc = ActiveDocument
doc.Unit = cdrMillimeter
doc.ActivePage.GetSize x, y
For Each pg In doc.Pages
If b_union = False Then
Set doc1 = CreateDocument
doc1.name = "union"
doc1.Unit = cdrMillimeter
b_union = True
End If
Set frame = pg.ActiveLayer.CreateRectangle(0, y, x, 0)
Set s = pg.SelectShapesFromRectangle(-1, y + 1, x + 1, -1, False)
s.Group
s.Copy
frame.Delete
Set s = doc1.ActiveLayer.Paste
s.SetPosition j * x, y - (i * y)
i = i + 1
If i = col_count Then
i = 0
j = j + 1
End If
Next
'doc.Close
Optimization = False
End Sub
|
rozkłada na kolumny po 25 stron (można zmiejszyć albo zwiększyć w kodzie - patrz komentarz), ale założenie jest takie, że wszystkie strony mają taki sam rozmiar i kopiuje tylko elementy znajdują się w obrębie strony... jeżeli masz różne wielkości zaimportowanych stron np A4, A3 jakieś niestandardowe rozmiary to lepiej korzystaj z pierwszej wersji, bo rozkładanie na kolumny różnych rozmiarów byłoby trochę chaotyczne. |
|
|
|
|
janusz1966
Początkujący jano
Wersja CorelDRAW: 13
Pomógł: 1 raz Wiek: 58 Dołączył: 11 Paź 2015 Posty: 14 Skąd: internet
|
Wysłany: 18 Październik 2015, 10:31
|
|
|
Witam wszystkich ponownie
Temat uważam za załatwiony kolega " tomek123" stworzył idealne macro, które niejednemu pewnie pomoże i ułatwi prace.
Tak się powinno pomagać, t/z jest on naprawdę fachowcem.
Raz jeszcze dzięki.
Makro warte skopiowania i zapisania sobie na przyszłość. |
|
|
|
|
|