[CDR 2022] Импортировать PDF в корел сохраняя страницы но сливая слои на страницах.

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

tohaa

Участник
Топикстартер
Сообщения
247
Реакции
9
Здравствуйте.
Импортирую файлы pdf из папки в документ корел.
Задача импортировать подряд несколько PDF.
Пдф могут быть одностраничные или многостраничные. На странице может быть как один слой с объектами так и несколько.
Проблема заключается в том, что в опциях импорта можно задать только .MaintainLayers = True или false, что сохраняет слои и страницы или сливает их в одну. А нужно слои слить, а страницы сохранить.

Как выделить и сгруппировать только объекты из импортированного файла, если на странице уже есть объекты?
 
Импортировать по одной странице. По неведомой затее, корел импортирует весь диапазон страниц в одну кучу.
Многостраничные pdf можно заранее порезать по одной странице, чтобы гарантированно в файле иметь 1 страницу. Потом массово импортировать, например, скриптом

Как выделить и сгруппировать только объекты из импортированного файла, если на странице уже есть объекты?
Помещайте их сразу на отдельный слой. На каждой странице придется создавать этот новый слой. Раньше было проще, создаешь слой, и он есть на всех страницах кореловского файла, теперь так - каждая страница имеет собственный набор слоев (не считая мастер-слоев). Но если импортировать скриптом, опять же, то и слой создавать не так уж сложно перед импортом, одна строчка
 
Последнее редактирование:
Импортировать по одной странице. По неведомой затее, корел импортирует весь диапазон страниц в одну кучу.
Многостраничные pdf можно заранее порезать по одной странице, чтобы гарантированно в файле иметь 1 страницу. Потом массово импортировать, например, скриптом


Помещайте их сразу на отдельный слой. На каждой странице придется создавать этот новый слой. Раньше было проще, создаешь слой, и он есть на всех страницах кореловского файла, теперь так - каждая страница имеет собственный набор слоев (не считая мастер-слоев). Но если импортировать скриптом, опять же, то и слой создавать не так уж сложно перед импортом, одна строчка
Возможно ли порезать импортируемый пдф на страницы макросом?
Про временный слой думал, но в нем особо смысла нет, так как если в пфд слои слиты в один, то после импорта объект остается activeshape и с ним можно дальше работать.
А если в пдф несколько слоев, то только первый из них попадет на временный слой, а остальные будут созданы все равно. И выделение останется только у последнего созданного.
 
Возможно ли порезать импортируемый пдф на страницы макросом?
Про временный слой думал, но в нем особо смысла нет, так как если в пфд слои слиты в один, то после импорта объект остается activeshape и с ним можно дальше работать.
А если в пдф несколько слоев, то только первый из них попадет на временный слой, а остальные будут созданы все равно. И выделение останется только у последнего созданного.
cpdf вам в помощь, одной строчкой слить все файлы и тут же порезать по одной странице. Им же можно слить слои в один, в той же строчке
cpdf -ocg-coalesce-on-name in.pdf -o out.pdf
Coalesce optional content groups. For example, if we merge or stamp two files both with
an OCG called ”Layer 1”, we will have two different optional content groups. Running
-ocg-coalesce-on-name will merge the two into a single optional content group.
 
Последнее редактирование:
что-то вроде
cpdf -merge *.pdf AND -ocg-coalesce-on-name AND -split -chunk 1 -o out%%%.pdf
а может, я и неправ, это для коллизий имен, если одинаковые имена слоев в разных файлах, то эти слои сливаются в один
 
Последнее редактирование:
cpdf вам в помощь, одной строчкой слить все файлы и тут же порезать по одной странице. Им же можно слить слои в один, в той же строчке
Ужас какой) Разговаривая с вами придумал блокировать все объекты на странице перед импортом. Затем импортировать многослойный пфд файл, выбирать все объекты на активной странице и группировать их тем самым сливая на один слой. далее снова блокировать все объекты и импортировать следующий пдф.
По идее должно сработать...
 
вроде же если сделать именно через импорт многостраничный PDF он импортируется сразу по страницам.
ну а далее пробегаем по каждой странице и со всех видимых (не служебных) слоёв всё сливаем в один слой чреез movetolayer
1733921142816.png
 
  • Спасибо
Реакции: zollinger
Ну а массовое объединение (или наоборот) уже реализовано в моем докере



1733921456566.png
 
вроде же если сделать именно через импорт многостраничный PDF он импортируется сразу по страницам.
Да, если через Импорт, то раскидывает по страницам :) А я всю жизнь их дропаю на лист :) Век живи, век учись :)
 
вроде же если сделать именно через импорт многостраничный PDF он импортируется сразу по страницам.
ну а далее пробегаем по каждой странице и со всех видимых (не служебных) слоёв всё сливаем в один слой чреез movetolayer
Посмотреть вложение 169998
Но если на каждой странице несколько слоев и уже есть какие-либо объекты, то управлять импортируемым становится невозможно. Задумка с блокировкой всего содержимого страницы перед импортом следующего пдф сработала.
 
Как выделить и сгруппировать только объекты из импортированного файла, если на странице уже есть объекты?
допустим у вас уже есть многостраничный документ и вы хотите добавить ещё что-то импортом из пдф на одну из страниц
после диалога и кривых и страницах курсор меняется на уголок - жмём Space - содержимое PDF появляется по центру страницы и ИМЕЕТ ВЫДЕЛЕНИЕ
если в этот момент не снимая выделения нажать CTRL+G - последний импорт будет сгруппирован
 
ну и ещё одни лайфхак - чуть с сторону от темы
импортируем многостраничный PDF - опять же
после диалога и кривых и страницах курсор меняется на уголок - жмём Space - содержимое PDF появляется по центру текущей страницы и ИМЕЕТ ВЫДЕЛЕНИЕ
если за это выделение ухватить мышом и вытянуть на desktop - то странички появятся - НО ВСЁ содержимое ВСЕХ страниц будет в одной куче на desktop
... иногда это полезно, когда на каждой страничке PDf какое-нибудь простенькие объекты, которые надо собрать на одну страницу большего размера
 
допустим у вас уже есть многостраничный документ и вы хотите добавить ещё что-то импортом из пдф на одну из страниц
после диалога и кривых и страницах курсор меняется на уголок - жмём Space - содержимое PDF появляется по центру страницы и ИМЕЕТ ВЫДЕЛЕНИЕ
если в этот момент не снимая выделения нажать CTRL+G - последний импорт будет сгруппирован
Это понятно. Именно так и происходит в ручном режиме. А когда импортируешь макросом - выделение остается только на объектах последнего импортированного слоя. Вот и приходится блокировать все объекты в файле и только потом импортировать новые, чтобы потом можно было их выделить не зацепив лишнее. Кстати, еще один вопрос. Как импортировать макросом только те объекты которые находятся на странице? А те что на полях игнорировать. И где посмотреть все опции для импорта пдф?
 
Последнее редактирование модератором:
Это понятно. Именно так и происходит в ручном режиме. А когда импортируешь макросом - выделение остается только на объектах последнего импортированного слоя. Вот и приходится блокировать все объекты в файле и только потом импортировать новые, чтобы потом можно было их выделить не зацепив лишнее. Кстати, еще один вопрос. Как импортировать макросом только те объекты которые находятся на странице? А те что на полях игнорировать. И где посмотреть все опции для импорта пдф?
создаем переменную типа структура импорта и там же в мануале можно всё посмотреть

Dim imprt As StructImportOptions
ActiveLayer.Import fpath, cdrPDF, imprt


 
  • Спасибо
Реакции: tohaa
Прошу прощения за офтоп, но утолите моё любопытство, от которого я сгораю уже который день, пожалуйста. Для каких целей вам это нужно?
 
Прошу прощения за офтоп, но утолите моё любопытство, от которого я сгораю уже который день, пожалуйста. Для каких целей вам это нужно?
Подробно изложу вам алгоритм работы макроса.
1. В буфер обмена помещается номер заказа.
2. В папку Загрузки скачиваются файлы пдф с номером заказа в начале имени. Их может быть любое количество.
3. Макрос выбирает все файлы пдф из папки закгрузки, сравнивает их с номером хранящимся в буфере.
4. Дальше в корел создается новый документ, начинается импорт и сортировка найденных пдф файлов.
5. При импорте каждая страница пдф объединяется по слоям. слои именуются нужным образом. ненужные удаляются.
6. По завершению импорта файлы выравниваются относительно друг друга заданным образом.
7. cdr файл сохраняется.
8. импортированные файлы удаляются из папки загрузки.
 
Подробно изложу вам алгоритм работы макроса.
1. В буфер обмена помещается номер заказа.
2. В папку Загрузки скачиваются файлы пдф с номером заказа в начале имени. Их может быть любое количество.
3. Макрос выбирает все файлы пдф из папки закгрузки, сравнивает их с номером хранящимся в буфере.
4. Дальше в корел создается новый документ, начинается импорт и сортировка найденных пдф файлов.
5. При импорте каждая страница пдф объединяется по слоям. слои именуются нужным образом. ненужные удаляются.
6. По завершению импорта файлы выравниваются относительно друг друга заданным образом.
7. cdr файл сохраняется.
8. импортированные файлы удаляются из папки загрузки.
всё конечно подробно, но главный вопрос ЗАЧЕМ )
 
  • Спасибо
Реакции: Zauglomskr