[CDR X5-X8] Publish to PDF

  • Огонь
Реакции: kuterma2
не-не ... слесарю - слесарево

на праздниках покумекаем ...
Благодарствую!
ну и может не строго "в печать", а чтобы менять можно было название папки... а то это мне надо в печать - а кому-то "Готов", "Финал" или вообще "дата_время" и т.п.
 
а то это мне надо в печать - а кому-то "Готов", "Финал" или вообще "дата_время" и т.п.
разумеется ... дата и время в названии файла уже можно добавлять ...
ну а "Готов" "Финал" ... хоть "В морг" - будет на усмотрение пользователя
 
  • Огонь
Реакции: kuterma2
а то это мне надо в печать - а кому-то "Готов", "Финал" или вообще "дата_время" и т.п.
ну с этим всё готово

1746455568523.png


но чтобы два раза не разуваться - начал копать в сторону
в вашем макросе при сохранении Pdf - цветовые профили встраиваются?
по дороге выяснилось засада с профилями не единственная
похожая ситуация и конвертированием спотов - т.е. по умолчанию они не конвертируются.
И если в макете есть споты и нам захотелось изготовить Gray - то картинка выходит довольно весёлая
и отключить это на лету нельзя, как и в ситуации с профилями.
С RGB и CMYK картина аналогичная - по дефолту - профили включены, а конвертация спотов наоборот выключена.

1746456229015.png

Пока остановился на том, что из макроса читается состояние
c:\Users\***\AppData\Roaming\Corel\CorelDRAW Graphics Suite 2018\Config\corelpdf.ini
и выводятся флаги по спотам и профилям All_ON или All_OFF или mix
и сделан механизм переключения/сброса для всех пресетов
... но требуется перезагрузка CorelDRAW, чтобы эти изменения вступили в силу

1746456109861.png


Иначе из макроса никак.
Альтернатива - пользоваться штатными PDF Preset.
Идеально было бы как-то так '))'

1746457069505.png


но одна мысль тревожит ... а может таки не стоит лезть в это corelPDF.ini???

Пусть остаётся со спотами и профилями - дело-то совсем не пустяшное.
По дури или непониманию можно столько дров наломать.
'hmmm''opa!)''hmmm''hmmm'
 
  • Огонь
Реакции: kuterma2
Ох, ёшкин кот... куды всё завертелось!!! Красиво!
я даже не знаю что сказать... Лично мне профиля наверное не нужны, но то такое: кому как. Поэтому копья ломать не стану.
 
Лично мне профиля наверное не нужны
наверное ещё помучаю, но скорее всего ничего такого не будет ...
добавятся субдиректории с возможностью запоминать/добавлять/удалять и на этом остановимся
всё остальное - Добро пожаловать в пресеты.
 
  • Спасибо
Реакции: kuterma2
наверное ещё помучаю, но скорее всего ничего такого не будет ...
добавятся субдиректории с возможностью запоминать/добавлять/удалять и на этом остановимся
всё остальное - Добро пожаловать в пресеты.
Отлично, но, на мой взгляд, нужно чтобы монструозным не стало, важно вовремя остановиться
 
... небольшой повтор уже сказанного
Установки на внедрение цветового профиля в PDF хранятся в файле
c:\Users\***\AppData\Roaming\Corel\CorelDRAW Graphics Suite ***\Config\corelpdf.ini
для каждого пресета в строках
EmbedColorProfile=1
Можно менять и настраивать пресеты на лету, НО
засада в том, что corelpdf.ini читается один раз при запуске приложения
и для применения скорректированных значений встраивания профилей надобно перезапустить CorelDRAW, чтобы заново считать corelpdf.ini
Соответственно, код VBA, касающийся встраивания цветовых профилей не имеет никакого значения
Что при запуске прочиталось - то и будет использовано.
то же самое касается и конвертации Spot to ...
Spot to ... пока оставим в покое . Но вот насчёт перезапуска и ColorProfile кое-что придумал.
Структура corelpdf.ini следующая
1746975141667.png
1746975228454.png

в каждом стиле записаны установки для штатных пресетов + 17 Current
на последних версиях к ним добавляется ещё секция с ID_86 - PDF/X-4

1. Запускаем CorelDRAW и создаём и сохраняем PDF Preset с именем 2025
(можно и иначе - но тогда нужно будет внести правки в скрипт - о нём ниже) - он так и будет
отображаться в списке пресетов.
1746975765719.png

Задайте в нём параметры ON/OFF внедрения ColorProfile ... ну и всё остальное
Примените это пресет один раз на каком-нибудь файле
теперь верхняя секция corelpdf.ini [Config] будет выглядеть следующим образом

[Config]
Style=2025
ProofStyle=CorelDefaultID_20
ExportRange=0
PageBoundingBox=0
Pathname=C:\Temp\16\
[StyleCorelDefaultID_35]
...
т.е. теперь если запустить CorelDRAW - VBA будет использовать стиль 2025 по умолчанию до тех пор, пока не будет закрыт.
При этом можно использовать и все остальные пресеты, причём всякий раз при смене пресетов будет перезаписывать секция [Config]
Тем, кто использует исключительно пресеты для Publish to PDF, не о чем беспокоиться - всё будет работать как обычно .
Тем, кто использует макрос важно, чтобы секция [Config] содержала стиль 2025 и его настройки ON/OFF внедрения ColorProfile.
Поэтому ВМЕСТО старта CorelDRAW предлагаю запускать vbs скрипт, который

открывает corelpdf.ini
правит секцию [Config],
сохраняет corelpdf.ini
и потом сам запускает CorelDRAW.

Ещё раз обращаю внимание - В теле скрипта (а это обычный текстовый файл в кодировке UTF-8) задано
имя стиля "2025" - если вы зададите другое имя - скрипт надо будет поправить
в 22 строке strLineInput = "Style=2025" на ваше имя
а также путь к версии CorelDRAW - сейчас там 2018
FileIn = appDataLoc & "\Corel\CorelDRAW Graphics Suite 2018\Config\corelpdf.ini"
CorelApp = "c:\Program Files\Corel\CorelDRAW Graphics Suite 2018\Programs64\CorelDRW.exe"

******
НА ВСЯКИЙ СЛУЧАЙ - ПРЕДВАРИТЕЛЬНО ЗАБЭКАПИТЬ corelpdf.ini
если вам всё-таки удастся его попортить - прикладываю девственный (с PDF/X-4)
*****

1746978848759.png
 

Вложения

Последнее редактирование:
заменил (изменил) скрипт ... теперь его можно запускать из любого места (например с DeskTop) - и от имени администратора.
Жаль не позволяет закрепить на панель задач.
 
Последнее редактирование:
... что-то после ремонта прикреплённые файлы меняются ... или я чего не доглядел

Еще раз текстом/кодом - скопировать и сохранить в кодировке 1251
при необходимости поправить версию CorelDRAW в обоих файлах

Код:
сохранить строку как 2025.cmd  и запускать откуда угодно от имени админа для правки INI и старта CorelDRAW

***
start "" "c:\Users\W10\AppData\Roaming\Corel\CorelDRAW Graphics Suite 2018\Config\2025.vbs"
***

а это сам скрипт 2025.vbs  сохранить по этому пути
c:\Users\W10\AppData\Roaming\Corel\CorelDRAW Graphics Suite 2018\Config\2025.vbs

***
Set objShell = CreateObject( "WScript.Shell" )
appDataLoc=objShell.ExpandEnvironmentStrings("%APPDATA%")

FileIn = appDataLoc & "\Corel\CorelDRAW Graphics Suite 2018\Config\corelpdf.ini"
CorelApp = "c:\Program Files\Corel\CorelDRAW Graphics Suite 2018\Programs64\CorelDRW.exe"

Set objFSO = CreateObject("Scripting.FileSystemObject")
 
Set PDFstyle = objFSO.OpenTextFile(FileIn, 1, True)
 
Set tmpFile = objFSO.OpenTextFile(FileIn & ".tmp", 2, True)
 
Do While Not PDFstyle.AtEndofStream
 
strLineInput = PDFstyle.ReadLine
 
If InStr(strLineInput, "Style=") Then
    S = Mid(strLineInput,1,6)
    If  S = "Style=" Then
        strLineInput = "Style=2025"
    End If
 
End If
 
tmpFile.WriteLine strLineInput
 
Loop
 
PDFstyle.Close
 
tmpFile.Close
 
objFSO.DeleteFile(FileIn)

 objFSO.MoveFile FileIn&".tmp", FileIn

objShell.Exec(CorelApp)
Set objShell = Nothing
***
 
Последнее редактирование:
В тестировании версия 7

1748342735566.png
1748342781284.png
 
  • Спасибо
Реакции: kuterma2
Навороченный, конечно, макрос. Куча настроек, все англоязычные...

Помнится, писал похожий макрос для себя. Не люблю много настроек, больше нравится когда макрос сам понимает, чего от него хотят. Ничего не выделено - экспортируем всю страницу, иначе - экспортируем выбранное. Выбранное состоит из нескольких непересекающихся объектов - экспортируем в разные файлы, иначе - одним файлом. Выбрал объекты, вызвал макрос - получил готовые файлы в заранее указанной папке с мессиджбоксом, что столько-то файлов экспортировано. Нужны дополнительные настройки - тогда вызываем этот же макрос, например, с нажатым шифтом или альтом и в появившемся окне уже выставляем что нужно. Хотя, конечно, у всех программистов свои предпочтения. '%)'