[CDR 2017-2021] как из кучи файлов сразу сделать png-превью

ЧервоНаруто

Участник
Топикстартер
Сообщения
31
Реакции
0
...как из кучи файлов сразу сделать png-превью с одинаковыми параметрами и названиями из оригинальных документов, буду благодарен. Помню, был какой-то макрос, но как его звали...
 
Последнее редактирование модератором:
из кучи файлов сразу сделать png-превью с одинаковыми параметрами и названиями из оригинальных документов
Макрос "File Converter"

и даже так
1673497688351.png
 
  • Спасибо
Реакции: MrDesigner
Чёт так заморочился, что про самый явный вариант и не вспомнил ;]] Прошу пардону, спасибо )))
 
Файл .cdr с 14-й версии является zip-архивом. И если его открыть как zip-архив, то там можно найти превьюшки каждой страницы в формате BMP, а с 17-й версии в PNG.
 
Файл .cdr с 14-й версии является zip-архивом. И если его открыть как zip-архив, то там можно найти превьюшки каждой страницы в формате BMP, а с 17-й версии в PNG.
Знаю, спасибо. В задании строгие правила для превью, конвертировать проще и точнее будет.
 
Тоже столкнулся сейчас с этой проблемой — понадобились превьюшки, но с сохранением путей, и файлов много.
Поэтому попросил ChatGPT реализовать вариант с добычей .PNG из zip-архива. Получил такой код, работает, быстро. Извлеченная превьюшка кладется рядом с исходным файлом с тем же именем; проверки на наличие одноименного файла нет, перезапись без запроса, так что будьте внимательны.

Python:
import os
import zipfile

def extract_thumbnail(cdr_path):
    try:
        with zipfile.ZipFile(cdr_path, 'r') as cdr_file:
            thumbnail_path = 'previews/thumbnail.png'
            if thumbnail_path in cdr_file.namelist():
                parent_name = os.path.splitext(os.path.basename(cdr_path))[0]
                output_path = os.path.join(os.path.dirname(cdr_path), f'{parent_name}.png')
                with open(output_path, 'wb') as thumbnail_file:
                    thumbnail_file.write(cdr_file.read(thumbnail_path))
                print(f"Thumbnail extracted: {output_path}")
            else:
                print(f"No thumbnail found in {cdr_path}")
    except zipfile.BadZipFile:
        print(f"Failed to open {cdr_path}: not a valid zip archive")

def process_directory(directory):
    for root, _, files in os.walk(directory):
        for file in files:
            if file.lower().endswith('.cdr'):
                cdr_path = os.path.join(root, file)
                extract_thumbnail(cdr_path)

if __name__ == '__main__':
    directory = input("Enter the directory to process: ")
    process_directory(directory)
 
  • Спасибо
Реакции: qzmin, zollinger и DukereD