[CDR 2017-2022] Пригласительные по имени в кореле, 200 имен, автоматизация

  • Автор темы Автор темы depp
  • Дата начала Дата начала

depp

Топикстартер
12 лет на форуме
Сообщения
110
Реакции
0
Пригласительные по имени в кореле - как вставить 200 имени автоматом или макросом...
 
Последнее редактирование модератором:
Последнее редактирование модератором:
???? Стандартная функция CorelDraw Print Merge, аналогичная Data Merge в Индизайне. В индизайне сделано удобнее на мой взгляд.
 
  • Спасибо
Реакции: depp
В тему Print Merge в Corel.
Компоную автоматом массив в нужную ширину, (Perfom Print Merge - Print Preview - Imposition Layout Tool и получаю заполнение листа изделиями печатью в PDF) и каждое изделие нужно в 3 экз, я на этом споткнулся.
Есть txt база, я могу, конечно, просто скопировать её три раза в txt, но хотелось бы найти какую-то автоматику в Print Merge. Количество копий в настройках принтера никак ни на что не влияют.
 
каждое изделие нужно в 3 экз

и уже там ...
1747820427496.png
 
  • Спасибо
Реакции: Cutter
  • Спасибо
Реакции: jnch4
Не забудьте глянуть на альтернативный метод работы с переменными:
 
  • Спасибо
Реакции: Cutter
вот у меня такой инструмент есть чтобы не мучаться со стандартным мержем. сразу делает нужные объекты и потом делай с ними что хочешь )))
 
  • Спасибо
Реакции: mnemonix
У меня тоже
Код:
Public Sub zpxInsertNames()
    '
    ' Recorded 26.12.2007
    '
    ' Description:
    '
    ' îòêðûòèå è ÷òåíèå ôàéëà äàííûõ
    Const textFileName = "c:\data.txt"
   
    Dim fs, f, s
    ' Dim textFile As Textstream
   
    Dim OrigSelection As ShapeRange
    Dim BaseShape As Shape
    Dim currPage As Page
    Dim NewPageRange As ShapeRange
   
   
    Set fs = CreateObject("Scripting.FileSystemObject")
     
    Set textFile = fs.OpenTextFile(textFileName) ' , ForReading, False)
    'ActivePage.Shapes.All.CreateSelection
    'ActivePage.ActiveLayer.Shapes.All.Cut
        Set OrigSelection = ActiveSelectionRange
    If OrigSelection.Count > 0 Then
    ActiveDocument.BeginCommandGroup ("Âñòàâêà èìåí èç ôàëà c:\data.txt")
   
    ' öèêë ÷òåíèÿ òåêñòîâîãî ôàéëà
    If OrigSelection(1).Type = cdrTextShape Then
'        Set currPage = ActiveDocument.ActivePage
       
        Do While textFile.AtEndOfStream <> True
            For Each BaseShape In OrigSelection
                ' ïðî÷òåì ñòðîêó
                retstring = textFile.ReadLine
                BaseShape.Text.Story = retstring
            Next
            nCurrPage = ActiveDocument.ActivePage.Index
            If nCurrPage = ActiveDocument.Pages.Count Then
               ActiveDocument.AddPages (1)
            Else
               ActiveDocument.Pages(nCurrPage + 1).Activate
            End If
             
           
            OrigSelection.CopyToLayer ActivePage.ActiveLayer
           
 
 
        Loop
     End If
    ActiveDocument.EndCommandGroup
    textFile.Close
    End If
End Sub
Просто кидаешь все имена в c:\data.txt и всё :)
Неизменяемые элементы положить на слой-шаблон
 
Последнее редактирование:
  • Спасибо
Реакции: Cutter и mnemonix
немного подробнее можно?
если ничего не трогать, то после Perform Print Merge - на листе будет комбинация 1,2,3,4 ... и до упора.
Немного поменяем руками порядок раскладки - т.е. 1,1,1,2,2,2,3,3,3 ... и всё будет по три
Конечно, желательно чтобы общее число макетов на листе было кратно трём
 
У меня массив больше 2000 разных позиций
когда вы делаете Print Merge - не тащите всю базу туда - решительно расчлените и уже частями ... чтобы Corel не "потел" так обильно
 
Там же ручная нумерация, как я понимаю? У меня массив больше 2000 разных позиций, это уже не автоматизация.
Попробуйте мой макрос. там есть и нумератор и можно в экселе удобно подготовить данные в т.ч. и нумерацию и любые другие поля.
 
  • Спасибо
Реакции: mnemonix и Cutter
Немного поменяем руками порядок раскладки - т.е. 1,1,1,2,2,2,3,3,3 ... и всё будет по три
Да, это большой "нюанс". Даже небольшой кусок в 150 разных позиций делать руками - точно не вариант. Проще Txt поправить Copy-Paste.
Я не могу сейчас попробовать все предложенные варианты, за которые всем большое спасибо, времени пока просто не хватает, но попробовать точно стоит. Пока пытаюсь пользоваться накатанной лыжнёй.