Convertir un dossier de PDF en flipbooks par lot

Convertis un dossier entier de PDF en flipbook par lot avec une seule boucle shell grâce au CLI FlipLink — récupère les URL dans un CSV et ignore les fichiers défectueux.

Sumit Ghugharwal
Sumit Ghugharwal

Publié le 21 juin 2026 · 7 min read

Partager cet article:

Tu as un dossier. Cinquante PDF produits qui y traînent. Chacun doit devenir un flipbook avec un titre cohérent, et il te faut les liens de partage dans un tableur avant la fin de la journée. Le faire à la main — téléverser, nommer, attendre, copier le lien, le coller, recommencer — c'est le genre de tâche qui te bouffe un après-midi et ta patience.

Ce guide te montre comment convertir des PDF en flipbook par lot pour un dossier entier avec une seule boucle shell, comment rassembler toutes les URL obtenues dans un CSV et comment continuer même si un fichier est défectueux. On part du principe que tu as déjà installé et authentifié le CLI FlipLink. Si ce n'est pas le cas, commence d'abord par Démarrer avec le CLI FlipLink — ça prend environ deux minutes.

La brique de base : un fichier à la fois

Avant de boucler sur cinquante fichiers, réussis-en un seul. La commande du CLI qui transforme un PDF en flipbook est :

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

--title est ce que voient les lecteurs ; --name est le libellé interne. Ajoute --json et la commande affiche la réponse brute de l'API au lieu d'un résumé lisible — c'est ce JSON que nous allons exploiter plus tard pour récupérer le lien de partage :

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

Cette seule réponse contient tout ce dont tu as besoin : l'ID du nouveau flipbook et son URL publique. Il ne reste plus qu'à l'exécuter une fois par fichier.

La boucle : convertir chaque PDF d'un dossier

Voici le cœur du sujet. Dépose tes PDF dans un dossier, place-toi dedans avec cd, puis lance une boucle bash sur *.pdf. On dérive un titre propre à partir de chaque nom de fichier — on retire l'extension .pdf et on remplace les tirets et underscores par des espaces :

#!/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

Cette boucle parcourt le dossier, convertit chaque PDF et affiche le résultat JSON pour chacun. Ça fonctionne, mais la sortie est un mur de JSON et un seul fichier défectueux laisserait quand même tourner le reste. Corrigeons les deux — d'abord la sortie, puis la gestion des erreurs.

Rassembler les résultats dans un CSV

Ce que tu veux vraiment à la fin, c'est un tableur : une ligne par flipbook, avec son ID et son lien de partage. Fais passer chaque résultat --json dans jq pour n'extraire que ces deux champs et ajouter une ligne au CSV.

La réponse de création contient l'ID du flipbook et une URL. On extrait les deux, on retombe sur une valeur de remplacement si un champ manque, et on écrit une ligne d'en-tête une seule fois en haut :

#!/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' construit un fragment CSV correctement entre guillemets à partir des deux champs, et @csv gère pour toi les éventuelles virgules ou guillemets présents dans les valeurs. Ouvre flipbooks.csv dans n'importe quel tableur et tu as ta liste de distribution.

Si tu préfères récupérer le lien de partage canonique séparément, le CLI dispose d'une commande dédiée — fliplink flipbook share-link <flipbookId> — que tu peux appeler avec l'ID que tu viens de capturer.

🚀

Essaie FlipLink gratuitement

Convertis ton PDF en quelques secondes. Sans inscription, sans carte bancaire — il suffit de téléverser.

Drop your PDF here or click to browse

Max 40 Mo

Les forfaits payants à partir de $39 font passer cette limite à 150 MB.

Ne laisse pas un seul fichier défectueux faire échouer le lot

Les dossiers sont en désordre. Un PDF peut être corrompu, trop volumineux, ou te faire dépasser le quota de ton offre. La boucle par défaut signalerait volontiers l'échec sous forme de ligne et passerait à la suite — mais tu ne saurais pas lesquels ont réellement réussi.

Le CLI te donne un signal clair grâce à ses codes de sortie :

  • 0 — succès
  • 1 — une erreur de requête ou HTTP (réseau, téléversement trop volumineux, authentification)
  • 2 — une erreur applicative (l'API a renvoyé Result: ERROR, par exemple quota dépassé)

Vérifie le code de sortie après chaque appel. Consigne les réussites dans ton CSV, les échecs dans une liste à part, et garde le lot en marche dans tous les cas :

#!/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."

Comme le CLI sort avec un code non nul en cas d'échec, la branche if ne s'exécute que sur une vraie réussite, et ton CSV ne se remplit jamais de lignes vides. À la fin, tu obtiens un décompte et un fichier failed.txt qui liste exactement les fichiers à examiner — relance uniquement ceux-là une fois que tu les as corrigés.

Un mot sur l'assignation à un dossier

Une question qui revient souvent : “La boucle peut-elle tout déposer dans un dossier FlipLink précis ?” Il n'y a pas de drapeau --folder sur fliplink flipbook create — n'en cherche pas, il n'existe pas.

Deux ou trois choses à savoir sur le fonctionnement des dossiers FlipLink : ils sont créés à la demande et disparaissent à nouveau quand ils sont vides, il n'y a donc rien à créer au préalable. Pour placer un flipbook dans un dossier, utilise l'échappatoire du CLI — la commande api — qui peut atteindre n'importe quel endpoint, y compris ceux sans sous-commande dédiée :

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

Glisse cet appel dans la branche de réussite de la boucle, en passant l'ID que tu as capturé depuis la réponse de création. Si tu as un doute sur les noms de champs exacts d'un endpoint, consulte la référence de l'API en direct plutôt que de deviner — chaque paramètre y est documenté, avec une console Try-It.

Pour conclure

Un dossier de PDF, une seule boucle shell, et un CSV de liens de partage qui t'attend à la fin — voilà tout le travail. Le même schéma passe de cinq fichiers à cinq cents, et la vérification du code de sortie fait qu'un seul fichier défectueux ne fait jamais dérailler l'exécution. Pour aller plus loin sur les workflows scriptés de FlipLink, la documentation du CLI couvre chaque commande, et Opérations en masse explique comment tout cela s'intègre dans un pipeline de publication plus large — parfait pour garder à jour, par lots, tes catalogues produits.

Lectures complémentaires

Prêt à créer ton premier flipbook ?

Transforme tes PDF en flipbooks et documents interactifs. Commence avec le Lifetime Deal de FlipLink : un accès à vie à partir de seulement 39 $.

#cli#lot#automatisation#pdf#opérations en masse
Lifetime Deal

Paie une fois, utilise pour toujours

10, 50 ou 100 flipbooks · Les 35 fonctionnalités · Domaines illimités

$39
10 Flipbooks
$89
50 Flipbooks
Le plus populaire
$129
100 Flipbooks

Aucun palier. Aucune restriction de fonctionnalité. Chaque code de l'offre à vie débloque tout.

  • Chaque fonctionnalité débloquée — sans limites
  • Cumulable — achète plus de codes quand tu veux
  • Remplaçable — échange l'ancien contre le nouveau
  • Domaines personnalisés illimités (CNAME)
  • Aucuns frais récurrents, jamais

À lire aussi

Tutorials6 min read

Premiers pas avec le CLI FlipLink

Installe le CLI FlipLink, authentifie-toi et transforme un PDF en flipbook publié et partageable depuis ton terminal en quelques commandes.

Sumit Ghugharwal