FlipLink

Массовое преобразование папки PDF во флипбуки

Массово преобразуй PDF во флипбук из целой папки одним shell-циклом через FlipLink CLI — собирай ссылки в CSV и пропускай битые файлы.

Sumit Ghugharwal
Sumit Ghugharwal

Опубликовано 21 июня 2026 г. · 6 min read

Поделиться статьёй:

У тебя есть папка. В ней лежат пятьдесят PDF с продукцией. Каждый нужно превратить во флипбук с осмысленным названием, а ссылки для шеринга должны быть в таблице к концу дня. Делать это вручную — загрузить, назвать, дождаться, скопировать ссылку, вставить, повторить — это та самая задача, которая съедает полдня и всё твоё терпение.

В этом руководстве показано, как массово преобразовать PDF во флипбук для целой папки одним shell-циклом, собрать все полученные ссылки в CSV и продолжить работу, даже если один файл оказался битым. Предполагается, что FlipLink CLI уже установлен, и ты прошёл авторизацию. Если нет — начни с знакомства с FlipLink CLI, это займёт около двух минут.

Базовый кирпичик: по одному файлу за раз

Прежде чем перебирать пятьдесят файлов, отработай один. Команда CLI, которая превращает PDF во флипбук, выглядит так:

fliplink flipbook create ./deck.pdf --title "Q3 Report" --name q3

--title — это то, что видят читатели; --name — внутренняя метка. Добавь --json, и команда выведет необработанный ответ API вместо удобной сводки — именно из этого JSON мы позже извлечём ссылку для шеринга:

fliplink flipbook create ./deck.pdf --title "Q3 Report" --json

Этот единственный ответ несёт всё, что нужно: ID нового флипбука и его публичный URL. Теперь остаётся лишь запустить команду по разу на каждый файл.

Цикл: преобразуем каждый PDF в папке

Вот его суть. Сложи свои PDF в папку, перейди в неё командой cd и запусти bash-цикл по *.pdf. Из имени каждого файла мы выводим чистое название — убираем расширение .pdf и меняем дефисы и подчёркивания на пробелы:

#!/usr/bin/env bash
for f in *.pdf; do
  # Turn "spring-product-catalog.pdf" into "spring product catalog"
  name="$(basename "$f" .pdf | tr '_-' '  ')"
  echo "Converting: $f  ->  \"$name\""
  fliplink flipbook create "$f" --title "$name" --json
done

Цикл проходит по папке, преобразует каждый PDF и выводит JSON-результат для каждого. Это работает, но на выходе получается стена JSON, и один битый файл всё равно не помешает остальным выполниться. Давай исправим оба момента — сначала вывод, потом обработку ошибок.

Собираем результаты в CSV

В итоге тебе нужна таблица: по одной строке на флипбук, с его ID и ссылкой для шеринга. Пропусти каждый результат --json через jq, чтобы вытащить только эти два поля и добавить строку в CSV.

Ответ на создание содержит ID флипбука и URL. Мы извлекаем оба, подставляем заглушку, если поле отсутствует, и один раз пишем строку заголовка вверху:

#!/usr/bin/env bash
out="flipbooks.csv"
echo "file,id,url" > "$out"           # write the CSV header once

for f in *.pdf; do
  name="$(basename "$f" .pdf | tr '_-' '  ')"
  echo "Converting: $f"

  json="$(fliplink flipbook create "$f" --title "$name" --json)"

  # Pull ID + URL from the JSON; '// "?"' supplies a fallback if absent
  row="$(printf '%s' "$json" | jq -r '[.ID, .URL] | @csv' 2>/dev/null)"

  printf '%s,%s\n' "$f" "$row" >> "$out"
done

echo "Done. Results in $out"

jq -r '[.ID, .URL] | @csv' собирает корректно экранированный CSV-фрагмент из двух полей, а @csv сам обрабатывает любые запятые и кавычки внутри значений. Открой flipbooks.csv в любой таблице — и вот твой список для рассылки.

Если предпочитаешь получать каноническую ссылку для шеринга отдельно, у CLI есть специальная команда для этого — fliplink flipbook share-link <flipbookId> — которую можно вызвать с тем ID, что ты только что собрал.

🚀

Попробуйте FlipLink бесплатно

Преобразуйте PDF за секунды. Без регистрации и кредитной карты — просто загрузите файл.

Drop your PDF here or click to browse

Макс. 40 МБ

На платных тарифах от $39 лимит вырастает до 150 MB.

Не дай одному битому файлу сорвать весь пакет

Папки бывают неаккуратными. Один PDF может оказаться повреждённым, слишком большим или вывести тебя за квоту тарифа. Обычный цикл преспокойно запишет ошибку в строку и пойдёт дальше — но ты не узнаешь, какие файлы на самом деле обработались.

CLI даёт тебе чёткий сигнал через коды выхода:

  • 0 — успех
  • 1 — ошибка запроса или HTTP (сеть, слишком большая загрузка, авторизация)
  • 2 — ошибка приложения (API вернул Result: ERROR, например превышение квоты)

Проверяй код выхода после каждого вызова. Записывай удачные в CSV, неудачные — в отдельный список, и продолжай выполнять пакет в любом случае:

#!/usr/bin/env bash
out="flipbooks.csv"
fail="failed.txt"
echo "file,id,url" > "$out"
: > "$fail"                            # truncate the failure log

ok=0; bad=0
for f in *.pdf; do
  name="$(basename "$f" .pdf | tr '_-' '  ')"
  echo "Converting: $f"

  if json="$(fliplink flipbook create "$f" --title "$name" --json)"; then
    row="$(printf '%s' "$json" | jq -r '[.ID, .URL] | @csv' 2>/dev/null)"
    printf '%s,%s\n' "$f" "$row" >> "$out"
    ok=$((ok + 1))
  else
    code=$?                            # 1 = request error, 2 = application error
    echo "$f (exit $code)" >> "$fail"
    bad=$((bad + 1))
  fi
done

echo "Converted $ok, failed $bad. See $out and $fail."

Поскольку CLI завершается с ненулевым кодом при сбое, ветка if выполняется только при настоящем успехе, так что твой CSV никогда не заполнится пустыми строками. В конце ты получаешь счётчик и файл failed.txt, в котором перечислено ровно то, что нужно разобрать — перезапусти только эти файлы, когда исправишь их.

Несколько слов о назначении в папку

Частый следующий вопрос: «А может ли цикл складывать всё в конкретную папку FlipLink?» У fliplink flipbook create нет флага --folder — не тянись за ним, его не существует.

Пара вещей, которые стоит знать о том, как устроены папки FlipLink: они создаются по запросу и снова исчезают, когда пустеют, так что заранее ничего создавать не нужно. Чтобы положить флипбук в папку, используй запасной выход CLI — команду api — которая может достучаться до любого эндпоинта, включая те, у которых нет отдельной подкоманды:

fliplink api PUT /api/assign-to-folder/<flipbookId> --data '{"Folder":"Marketing/Q2"}'

Вставь этот вызов в ветку успеха цикла, передав ID, который ты собрал из ответа на создание. Если не уверен в точных названиях полей для какого-либо эндпоинта, сверься с живым справочником API, а не гадай — каждый параметр там задокументирован вместе с консолью Try-It.

Подводим итог

Папка PDF, один shell-цикл и CSV со ссылками для шеринга в конце — вот и вся работа. Тот же приём масштабируется с пяти файлов до пятисот, а проверка кода выхода означает, что один битый файл никогда не пустит весь прогон под откос. Подробнее о скриптовых сценариях FlipLink: документация CLI описывает каждую команду, а Массовые операции объясняют, как это вписывается в более крупный пайплайн публикации — идеально, чтобы поддерживать каталоги товаров в актуальном виде партиями.

Дополнительное чтение

Готовы создать первый флипбук?

Превращай свои PDF в интерактивные флипбуки и документы. Начни с Lifetime Deal от FlipLink — пожизненный доступ всего от $39.

#cli#пакетная обработка#автоматизация#pdf#массовые операции
Lifetime Deal

Платите один раз — пользуйтесь всегда

10, 50 или 100 флипбуков · Все 35 функций · Безлимитные домены

$39
10 Флипбуки
$89
50 Флипбуки
Популярный выбор
$129
100 Флипбуки

Без уровней. Без ограничений по функциям. Каждый код LTD открывает всё.

  • Все функции открыты — без ограничений
  • Коды суммируются — докупайте в любой момент
  • Коды заменяемы — обменяйте старый на новый
  • Неограниченные собственные домены (CNAME)
  • Никаких регулярных платежей

По теме

Tutorials5 min read

Начало работы с FlipLink CLI

Установи FlipLink CLI, авторизуйся и преврати PDF в опубликованный флипбук со ссылкой прямо из терминала за несколько команд.

Sumit Ghugharwal