[CDR 2017-2021] Автоматизация конвертации из .CDR в .AI

Mitaj

Участник
Сообщения
35
Реакции
9
"Овчинка выделки не стоит", сомнительная трата времени (хоть в ручную, хоть автоматически), исправление косяков конвертирования займёт еще кучу времени. Идеальный вариант - постепенно переходить, использую оба продукта, создавая новые в ai, а старые cdr по мере необходимости переводить в ai. Я использую оба, иначе ни как не получается.
 
  • Спасибо
Реакции: Jeine и carry

suntory

Administrator
15 лет на форуме
Сообщения
23 424
Реакции
12 468
Как ни крути они потеряются.
Совсем не обязательно.
выход выше озвучен. Старые макеты добивать в Корле и постепенно делать новые в Иллюстраторе
Это не выход, и не стоит так драматизировать. Не все переносится, но многое вполне.
 

suntory

Administrator
15 лет на форуме
Сообщения
23 424
Реакции
12 468
Вас послушать, так даже логотип из Корела нельзя в Illustrator затащить. Полно макетов и рисунков где ничего не отваливается или несложно исправить. Перекрасить слетевший градиент проще чем рисовать все заново.
 

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
1. Новые работы делать в иллюстраторе.
2. Старые, если просто репринт можно конвертнуть в AI либо переделать в кореле.
Не надо перегонять весь ваш архив, но если очень хочется, можно потоковым скриптом в PDF для хранения. PDF все же универсальный формат. Всегда можно что-то достать из него.
 
Последнее редактирование:
У

Удалённый пользователь 513

Гость
Ребята, добрый день.

Решился я на такую вот авантюру — переехать c Corel'a на Illustrator.
Назрел такой вопрос: как можно реализовать конвертацию большого количества .CDR файлов в .AI, понимаю, что багов конвертации не избежать, но решительно решил перейти на Adobe'овский пакет, в частности на Illustrator. Раньше пытался конвертировать только текущие работы, заходя в корел, экспортируя, но я так ни за что в жизни не перейду на новый продукт, ибо нагнетает :D )

У кого какие идеи, как это можно реализовать?
Или может есть скрипт открытия .CDR файлов напрямую в Illustrator?
VBS скрипт
Запускаешь корел, запускаешь скрипт, кидаешь кдр-ки в горячую папку, получаешь пдфки.
Код:
Private Declare PtrSafe Sub Sleep Lib "kernel32" ( _
        ByVal dwMilliseconds As LongLong)
Sub CRD2PDF()
On Error Resume Next
Dim folder$, coll As Collection
folder$ = "C:\CRD2PDF"
    
If Dir(folder$, vbDirectory) = "" Then
MsgBox "Folder «" & folder$ & "»", vbCritical, " not present"
Exit Sub        ' Exit, if the folder is not found
End If
Do
    ' Yield to other programs (better than using DoEvents which eats up all the CPU cycles)
    DoEvents
    Set coll = FilenamesCollection(folder$, "*.cdr") ' get a list of *.cdr files in the folder
    ' If coll.Count = 0 Then
    ' MsgBox "In the folder «" & Split(folder$, "\")(UBound(Split(folder$, "\")) - 1) & "» no appropriate files!", _
    ' vbCritical, "Files for processing not found"
    ' Exit Sub       
' Exit if no files
    ' End If
 
    ' Iterate through all the files
    For Each file In coll
        PanoseMatching = cdrPanosePermanent 'Skip panose dialog
        Set ToPdf = OpenDocument(file) ' Open file from collection
        With ToPdf.PDFSettings 'Publish to PDF settings
        .PublishRange = 0 ' WholeDocument
        .PageRange = ""
        .Author = "Published from CorelDraw"
        .Subject = ""
        .Keywords = "CorelDraw"
        .BitmapCompression = 1 ' LZW
        .JPEGQualityFactor = 10
        .TextAsCurves = True
        .EmbedFonts = True
        .EmbedBaseFonts = True
        .TrueTypeToType1 = True
        .SubsetFonts = True
        .SubsetPct = 80
        .CompressText = True
        .Encoding = 1 ' Binary
        .DownsampleColor = False
        .DownsampleGray = False
        .DownsampleMono = False
        .ColorResolution = 200
        .MonoResolution = 600
        .GrayResolution = 200
        .Hyperlinks = True
        .Bookmarks = True
        .Thumbnails = False
        .Startup = 0 ' PageOnly
        .ComplexFillsAsBitmaps = False
        .Overprints = True
        .Halftones = False
        .MaintainOPILinks = False
        .FountainSteps = 256
        .EPSAs = 0 ' Postscript
        .pdfVersion = 0 ' Version12
        .IncludeBleed = False
        .Bleed = 31750
        .Linearize = False
        .CropMarks = False
        .RegistrationMarks = False
        .DensitometerScales = False
        .FileInformation = False
        .ColorMode = 3 ' Native
        .UseColorProfile = False
        .ColorProfile = 1 ' SeparationProfile
        .EmbedFilename = ""
        .EmbedFile = False
        .JP2QualityFactor = 10
        .TextExportMode = 0 ' TextAsUnicode
        .PrintPermissions = 0 ' PrintPermissionNone
        .EditPermissions = 0 ' CEditPermissionNone
        .ContentCopyingAllowed = False
        .OpenPassword = ""
        .PermissionPassword = ""
        .EncryptType = 0 ' EncryptTypeNone
        .OutputSpotColorsAs = 0 ' SpotAsSpot
        .OverprintBlackLimit = 95
        .ProtectedTextAsCurves = True
    End With
        For Each p In ActiveDocument.Pages 'Search first text objects on document pages
            p.Activate
            If ActivePage.Shapes.FindShapes(Type:=cdrTextShape).Count > 0 Then
Exit For ' Break cycle if Text object found in document
            End If
        Next p
If ActivePage.Shapes.FindShapes(Type:=cdrTextShape).Count > 0 Then
    ' Text object found in document
    Open Mid(ToPdf.FullFileName, 1, Len(ToPdf.FullFileName) - 3) & "txt" For Output As #1 'Open txt file
    Print #1, "Some text objects NOT in curves" 'Write in text file warning
    Close #1
Else
    ' Text object NOT found in document, publish to PDF
    ToPdf.PublishToPDF Mid(ToPdf.FullFileName, 1, Len(ToPdf.FullFileName) - 3) & "pdf"
    End If
ToPdf.Close 'Close CRD file
Kill file 'Delete CDR file
    Next
Call DelOldFiles(3, "*.pdf") ' Delete PDF older than ... days
Call DelOldFiles(3, "*.txt") ' Delete TXT older than ... days
Sleep 5 * 1000 'Pause X * 1000 sec
Loop
End Sub

Sub DelOldFiles(Days As Double, Optional ByVal Mask As String = "")
    On Error Resume Next
    Dim folder$, coll As Collection
    folder$ = "C:\CRD2PDF"
    If Dir(folder$, vbDirectory) = "" Then
        MsgBox "Folder «" & folder$ & "»", vbCritical, " not present"
        Exit Sub ' exit, if the folder is not found
    End If

    Set coll = FilenamesCollection(folder$, Mask) ' get a list of *.pdf files in the folder
    For Each file In coll ' Loop through the files
       If FileDateTime(file) < Now - Days Then Kill file ' Delete the file if it is older than ... days
    Next
End Sub

Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _
             Optional ByVal SearchDeep As Long = 999) As Collection
    ' Receives as a parameter the path to the folder FolderPath, the name of the desired mask files Mask
    ' (to be selected, only files with a mask / expansion) and SearchDeep search depth in the folder
    ' (if SearchDeep = 1, the sub-folders are not visible).
    ' Returns a collection that contains the full path of files found (Used recursive call GetAllFileNamesUsingFSO procedure)

    Set FilenamesCollection = New Collection    ' create an empty collection
    Set FSO = CreateObject("Scripting.FileSystemObject")    ' create an instance of FileSystemObject
    GetAllFileNamesUsingFSO FolderPath, Mask, FSO, FilenamesCollection, SearchDeep ' Search
    Set FSO = Nothing: Application.StatusBar = False    ' Clear variables
End Function

Function GetAllFileNamesUsingFSO(ByVal FolderPath As String, ByVal Mask As String, ByRef FSO, _
 ByRef FileNamesColl As Collection, ByVal SearchDeep As Long)
    On Error Resume Next: Set curfold = FSO.GetFolder(FolderPath)
    If Not curfold Is Nothing Then    ' If able to access the folder

        For Each fil In curfold.Files    ' Go through all the files in a FolderPath
            If fil.Name Like "*" & Mask Then FileNamesColl.Add fil.Path
        Next
        SearchDeep = SearchDeep - 1    ' Reduce the depth of search in subfolders
        If SearchDeep Then    ' If it is necessary to look deeper
        For Each sfol In curfold.SubFolders    ' Iterate through all subfolders in the folder FolderPath
        GetAllFileNamesUsingFSO sfol.Path, Mask, FSO, FileNamesColl, SearchDeep
        Next
        End If
        Set fil = Nothing: Set curfold = Nothing    ' Clear variables
    End If
End Function
 

carry

15 лет на форуме
Сообщения
2 637
Реакции
1 013
Если просто векторный рисунок с гладкими заливками - то через eps или pdf можно нормально выдернуть из Корела в Илл., а вот если с кренделями - то придется решать каждый раз отдельно
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
В любом случае конвейерный подход здесь неприемлем. Это все равно как волевым решением начать новую жизнь, спалив родную хату.
 
  • Спасибо
Реакции: Nikle и LiKER

took

15 лет на форуме
Сообщения
388
Реакции
14
VBS скрипт
Запускаешь корел, запускаешь скрипт, кидаешь кдр-ки в горячую папку, получаешь пдфки.
Код:
Private Declare PtrSafe Sub Sleep Lib "kernel32" ( _
        ByVal dwMilliseconds As LongLong)
Sub CRD2PDF()
ing: Set curfold = Nothing    ' Clear variables
    End If
End Function
Это какая то магия! Низкий поклон!