フォルダ内のPDFをまとめてフリップブックに一括変換する

FlipLink CLIのシェルループ1つで、フォルダ内のPDFをまとめてフリップブックに一括変換。URLをCSVに保存し、壊れたファイルはスキップする方法を解説します。

Sumit Ghugharwal
Sumit Ghugharwal

2026年6月21日 に公開 · 11 min read

この記事をシェアする:

フォルダが1つあります。その中に製品PDFが50個。それぞれをわかりやすいタイトルでフリップブックにして、しかも今日中に共有リンクをスプレッドシートにまとめなければなりません。これを手作業でやると — アップロードして、名前を付けて、待って、リンクをコピーして、貼り付けて、また繰り返す — 午後の時間と忍耐力をまるごと食いつぶす類の作業になります。

このガイドでは、シェルループ1つでフォルダ全体のPDFをまとめてフリップブックに一括変換し、生成されたURLをすべてCSVに集め、たとえ1つのファイルが壊れていても処理を止めずに進める方法を紹介します。前提として、FlipLink CLIをすでにインストールし、認証済みであることとします。まだの場合は、まずFlipLink CLIを使い始めるから始めてください — 2分ほどで済みます。

まずは基本:1ファイルずつ

50個のファイルをループ処理する前に、1つのファイルを正しく扱えるようにしましょう。PDFをフリップブックに変換するCLIコマンドはこちらです。

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

--titleは読者に表示されるもの、--nameは内部用のラベルです。--jsonを付けると、わかりやすい要約の代わりに生のAPIレスポンスが出力されます — このJSONこそ、あとで共有リンクを取り出すために掘り出す対象になります。

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

この1つのレスポンスに、必要なものがすべて含まれています。新しいフリップブックのIDと、その公開URLです。あとは、これをファイルごとに1回ずつ実行するだけです。

ループ:フォルダ内のすべてのPDFを変換する

これが本題の中心です。PDFをフォルダに入れ、cdでその中に移動し、*.pdfに対してbashループを回します。各ファイル名からきれいなタイトルを導き出します — .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の壁になり、1つの不良ファイルがあってもそのまま残りの処理が走ってしまいます。この両方を直しましょう — まずは出力、次にエラー処理です。

結果をCSVにまとめる

最終的に欲しいのは、フリップブック1つにつき1行、そのIDと共有リンクが入ったスプレッドシートです。各--jsonの結果をjqに通して、その2つのフィールドだけを取り出し、CSVの行として追記しましょう。

createのレスポンスには、フリップブックのIDURLが含まれています。両方を抽出し、フィールドが欠けている場合はプレースホルダーで代用し、先頭にヘッダー行を1度だけ書き込みます。

#!/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'は、2つのフィールドから適切に引用符で囲まれたCSVの断片を組み立てます。@csvは、値の中に含まれるカンマや引用符も自動で処理してくれます。flipbooks.csvを任意のスプレッドシートで開けば、配布リスト一覧の完成です。

正式な共有リンクを別途取得したい場合は、CLIに専用のコマンドがあります — fliplink flipbook share-link <flipbookId> — これは、いま取得したIDを渡して呼び出せます。

🚀

FlipLinkを無料で試す

PDFを数秒で変換。登録もクレジットカードも不要 — アップロードするだけです。

Drop your PDF here or click to browse

最大40MB

$39 からの有料プランなら、上限が 150 MB に広がります。

1つの不良ファイルでバッチを止めない

フォルダは雑然としているものです。あるPDFは壊れているかもしれませんし、サイズが大きすぎたり、プランの上限を超えてしまうかもしれません。デフォルトのループは、失敗をそのまま1行として報告して先へ進んでしまいます — しかし、それでは実際にどれが成功したのか分からなくなります。

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"}'

この呼び出しを、createのレスポンスから取得したIDを渡しつつ、ループの成功分岐に組み込みましょう。あるエンドポイントの正確なフィールド名がよく分からない場合は、推測するのではなく、ライブのAPIリファレンスを確認してください — すべてのパラメータがTry-Itコンソール付きでそこに記載されています。

まとめ

PDFのフォルダ、シェルループ1つ、そして最後に待っている共有リンクのCSV — これで作業全体は完了です。同じパターンは5ファイルから500ファイルまでそのまま拡張でき、終了コードのチェックがあるおかげで、1つの不良ファイルが処理全体を脱線させることは決してありません。FlipLinkのスクリプト化したワークフローについてさらに知りたい方は、CLIドキュメントがすべてのコマンドを網羅しており、一括処理では、これがより大きな公開パイプラインにどう組み込まれるかを説明しています — 製品カタログをバッチでつねに最新の状態に保つのに最適です。

関連記事

最初のフリップブックを作成しませんか?

PDFをインタラクティブなフリップブックや文書に変換しましょう。FlipLinkのライフタイムディールなら、永久アクセスがわずか $39 から始められます。

#cli#一括処理#自動化#pdf#bulk operations
ライフタイムディール

一度のお支払いで、ずっと使える

10・50・100 フリップブック · 35の全機能 · 無制限ドメイン

$39
10 フリップブック
$89
50 フリップブック
人気
$129
100 フリップブック

プランの差はありません。機能制限もありません。すべてのLTDコードで全機能がご利用いただけます。

  • 全機能が使える — 制限なし
  • 積み重ね可能 — いつでもコードを追加購入
  • 交換可能 — 古いコードを新しいものに入れ替え
  • 独自ドメイン無制限(CNAME)
  • 月額・年額の定期料金なし

関連記事

Tutorials9 min read

FlipLink CLIでCI/CDのフリップブック公開を自動化する

FlipLink CLIを使えば、どんなCI/CDパイプラインでもフリップブックの公開を自動化できます。作成・公開・URL取得・終了コードによる早期失敗まで一気通貫で解説します。

Sumit Ghugharwal
Tutorials10 min read

FlipLink CLIをはじめよう

FlipLink CLIのインストールからAPIキーによる認証、PDFのアップロード、フリップブックの公開、共有リンクの取得、そしてスクリプトでの自動化まで、ターミナルだけでわずか数コマンドで完結させる手順を、最初から最後まで一つひとつやさしく解説します。

Sumit Ghugharwal