|
Corel FORUM Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych |
|
Makra - Automatyczne zapisywanie do wcześniejszych wersji Corela
Trurl - 11 Marzec 2011, 10:00 Temat postu: Automatyczne zapisywanie do wcześniejszych wersji Corela Pracuję chwilowo w Corelu X5, ale odbiorcy moich prac dysponują wcześniejszymi wersjami - "dziewiątką", "jedenastką" i "dwunastką". Muszę więc zapisywać te prace we wcześniejszych wersjach, o czym zwykle zapominam i odbiorcy nie mogą ich otworzyć. Czy istnieje metoda na automatyczny zapis we wcześniejszych wersjach? Marzy mi się sytuacja, w której wciskam ctrl+S i moja praca zapisuje się np. w "jedenastce". Być może wystarczy zmienić coś w plikach konfiguracyjnych, np. w CorelDrw.ini?
Martin Nez - 11 Marzec 2011, 15:32
Spróbuj użyć tego... Skrót możesz sobie ustawić w Opcjach Corela. Wybierz sobie wersję, w której chcesz zapisywać i usuń apostrof przed odpowiednią linią...
Kod: | Sub zapis_wersji()
Dim SaveOptions As StructSaveAsOptions
Set SaveOptions = CreateStructSaveAsOptions
With SaveOptions
.EmbedVBAProject = False
.Filter = cdrCDR
.IncludeCMXData = False
.Range = cdrAllPages
.EmbedICCProfile = False
' .Version = cdrVersion1 ' Corel 1.0
' .Version = cdrVersion2 ' Corel 2.0
' .Version = cdrVersion3 ' Corel 3.0
' .Version = cdrVersion4 ' Corel 4.0
' .Version = cdrVersion5 ' Corel 5.0
' .Version = cdrVersion6 ' Corel 6.0
' .Version = cdrVersion7 ' Corel 7.0
' .Version = cdrVersion8 ' Corel 8.0
' .Version = cdrVersion9 ' Corel 9.0
' .Version = cdrVersion10 ' Corel 10.0
' .Version = cdrVersion105 ' Corel 10.5
' .Version = cdrVersion11 ' Corel 11.0
' .Version = cdrVersion12 ' Corel 12.0
' .Version = cdrVersion13 ' Corel X3.0
' .Version = cdrVersion14 ' Corel X4.0
End With
ActiveDocument.SaveAs ActiveDocument.FullFileName, SaveOptions
End Sub |
Pozdr,
MN
chezare - 11 Marzec 2011, 17:24
Martin, musisz wykombinować makro na poprawę pamięci, bo jak Trurl zapomina, że ma zapisać w starszej wersji, to i o skrócie do makra zapomni
Martin Nez - 11 Marzec 2011, 18:04
Ja czasami stosuję wielkie kartki nad monitorem... Na kartce np. "Wersja 13!"... Ale to też nie zawsze działa, bo potem coś robię, zapisuję w 15, wysyłam do klienta... Można odsapnąć, odchylić głowę i się wyprostować... Nagle spojrzenie na kartkę i "K***a!!! Znowu!"... :)
MN
wawel - 11 Marzec 2011, 18:09
Martin Nez napisał/a: | ... Nagle spojrzenie na kartkę i "K***a!!! Znowu!"... :)
MN |
Bo to moze dlatego ze uzywasz otwartych plikow. Wielu grafikow nie udostepnia cdr, ai, indd, qxp itd. Traktuje je jako swoje. Dla klienta tylko pdf, eps, ps, tiff itd.
Ja rowniez wole dostac plik inny niz cdr, bo ten pewnie bedzie zapisany jako cdr X5 wiec nie do otworzenia.
Trurl - 11 Marzec 2011, 19:02
Hmm... Gdyby to makro uruchamiało się w chwili, gdy nacisnę ctrl+S, to byłoby znakomicie... Czy można do tego doprowadzić?
chezare - 11 Marzec 2011, 19:10
Jestem przekonany, że Szaman potrafi do tego doprowadzić
Tak poważnie, to jakim problemem jest przypisanie skrótu do makra?
Kod: | Option Explicit
Declare Function GetKeyState Lib "user32" (ByVal vKey&) As Long
' Skrót Ctrl+S należy przypisać do tego makra i po krzyku.
Sub [b]CDRSaveSetup()[/b]
Dim s$, i%
s = InputBox("Version (0 = original):", "Save As Version", "12")
If s = "" Or Not IsNumeric(s) Then Exit Sub
i = Fix(CDbl(s)): If i <> 0 And (i < 7 Or i > Application.VersionMajor) Then MsgBox "Valid range: 7-" + CStr(Application.VersionMajor), vbCritical, "Error": Exit Sub
SaveSetting "CorelDRAW", "SaveAsVersion", "Version", CStr(i)
End Sub
Sub CDRSaveAsVersion()
Dim so As StructSaveAsOptions
On Error Resume Next
If ActiveDocument Is Nothing Then Exit Sub
Set so = Application.CreateStructSaveAsOptions
so.EmbedICCProfile = True: so.EmbedVBAProject = hasVBA(ActiveDocument)
so.Range = cdrAllPages
so.ThumbnailSize = cdr10KColorThumbnail
If (GetKeyState(&H91) And 1) <> 0 Then CDRSaveSetup
Err.Clear
so.Version = Val(GetSetting("CorelDRAW", "SaveAsVersion", "Version", "0"))
If so.Version = 0 Then so.Version = Application.CorelScript.GetCDRFileVersion(ActiveDocument.FullFileName)
If Err.Number Then so.Version = Application.VersionMajor
so.Overwrite = True
With ActiveWindow.ActiveView
ActiveDocument.Properties("LastView", 0) = ActivePage.Index
ActiveDocument.Properties("LastView", 1) = .OriginX
ActiveDocument.Properties("LastView", 2) = .OriginY
ActiveDocument.Properties("LastView", 3) = .Zoom
End With
ActiveDocument.SaveAs ActiveDocument.FullFileName, so
End Sub
Function hasVBA(doc As Document) As Boolean
Dim s$, vp As Object, i&, isVBA%
For Each vp In Application.VBE.VBProjects
Err.Clear: s = vp.FileName
If Err.Number = 0 Then
If StrComp(vp.FileName, doc.FullFileName, vbTextCompare) = 0 Then
If vp.VBComponents.Count > 1 Then hasVBA = True: Exit For
For i = 1 To vp.VBComponents.Count
With vp.VBComponents(i)
If .Type = 100 Then 'vbext_ct_Document
If .CodeModule.CountOfLines = 0 Then Exit For
s = Trim$(Replace$(Replace$(.CodeModule.Lines(1, .CodeModule.CountOfLines), vbCr, ""), vbLf, ""))
If Len(s) > 15 Then If StrComp(s, "Option Explicit", vbTextCompare) <> 0 Then hasVBA = True
End If
End With
Next
Exit For
End If
End If
Next
End Function
|
wawel - 11 Marzec 2011, 19:22
tu jest gotowe makro i opis dot. ctrl s
http://macromonster.com/i...escr&id_desc=21
ps.
Taki watek juz z odpowiedzia tez juz byl na tym forum, i z gotowym makrem.
Martin Nez - 11 Marzec 2011, 19:33
Trurl, ak mówiłem, skrót ustawiasz w opcjach Corela...
Narzędzia > Opcje > Polecenia > wybierasz Makra z listy > szukasz "zapis_wersji" > przechodzisz na zakładkę "Klawisze skrótów" > Wpisujesz skrót > klikasz "Przypisz"...
chezare... A'propos szamana to ja się nie wypowiadam. ;) Ale lubię czytać jak chcę sobie humor poprawić. :)
Pozdr,
MN
chezare - 11 Marzec 2011, 19:35
A po co szukać jak Wawel powie co jak i gdzie
To co ja miałem to to samo co podałeś w linku.
Trurl - 14 Marzec 2011, 11:41
Hmm... Muszę Wam wyznać pewną tajemnicę... Otóż, choć pracuję w Corelu już kilkanaście lat, to nigdy nie napisałem w nim makra. Kilka razy próbowałem, ale nic mi z tego nie wyszło. Nie mogłem znaleźć opisu języka makr i opisu techniki posługiwania się nim. Powiedzcie, jak to zrobić i które z nich wybrać - Martin Neza czy Chezare? No i gdzie znaleźć opis języka makr? Jest to jakaś odmiana VB, ale nie znam obiektów i metod...
chezare - 14 Marzec 2011, 13:40
Martina, mam nadzieję, że on napisze to samo . To co ja przytoczyłem nie jest moje żeby była jasność. Szaman mówi, że ja nie mam o tym pojęcia, a ja się z nim zgadzam.
Na oko, to to co ja zamieściłem jest lepsze, bo dłuższe
Corel ma całkiem przyzwoity help
bartek028 - 14 Marzec 2011, 14:45 Temat postu: Odp Witam,
Mam podobny problem, ale interesuje mnie czy jest np. jakiś dodatek do Corela X3 który pozwalałby na otwieranie plików w wersji wyższej tak jak to się ma w przypadku np. Worda 2003, który czyta pliki Worda 2010.
Pozdrawiam
wawel - 14 Marzec 2011, 15:06 Temat postu: Re: Odp
bartek028 napisał/a: | Witam,
Mam podobny problem, ale interesuje mnie czy jest np. jakiś dodatek do Corela X3 który pozwalałby na otwieranie plików w wersji wyższej tak jak to się ma w przypadku np. Worda 2003, który czyta pliki Worda 2010.
Pozdrawiam |
Sa 3 programy poza Corelem, ktore potrafia otworzyc lub przekonwertowac pliki cdr. Obsluguja pliki cdr do wersji X4 wlacznie. (bodaj poza sk1 bo ten wers 7-X3)
sk1 (linux - wszystkie wieksze dystrybucje Ubuntu, Mint, Fedora, Mandriva, OpenSuse, pcLinuxOS)
UniConvertor (linux i windows)
nowy inkscape
Dzialaja dosc kiepsko jednak, jesli czcionki nie sa w krzywych to sie rozsypuja.
Mapy bitowe sa konwertowane do rgb (UniConvertor, inkscape) nie wiem jak sk1 - on obsluguje cmyka w mapach bitowych rowniez, wiec moze sobie poradzi - musialbym sprawdzic. EDIT: sprawdzilem otwiera mape bitowa w cmyku.
Jesli sa to proste elementy typu logo to powinno byc latwo sie do nich dostac.
pozdr.
Trurl - 14 Marzec 2011, 16:43
Wawel, Twoje makro działa... Dzięki.
lobo4581 - 11 Styczeń 2013, 09:07
Tutaj jest do tego programik.
http://macromonster.com/i...roducts=19&id=9
|
|