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
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: 3136
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: 3136
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: 3136
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: 3136
Skąd: Kraków
Wysłany: 14 Październik 2015, 18:30   

janusz1966 napisał/a:
link do plików
https://drive.google.com/open?id=0B84fW47fWKL-TE84aU9MN1o5OFk


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
Kod:
'doc.Close
 
 
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ść.
 
 
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.1 sekundy. Zapytań do SQL: 12