تحويل مجلد كامل من ملفات PDF إلى كتب تفاعلية دفعةً واحدة
حوّل ملفات PDF إلى كتب تفاعلية دفعةً واحدة من مجلد كامل عبر حلقة شِل واحدة باستخدام FlipLink CLI — واجمع الروابط في ملف CSV مع تجاوز الملفات المعطوبة.
نُشر في 21 يونيو 2026 · 6 min read
أمامك مجلد. خمسون ملف PDF لمنتجات تنتظر بداخله. كل واحد منها يحتاج أن يتحوّل إلى كتاب تفاعلي بعنوان مناسب، وأنت بحاجة إلى روابط المشاركة في جدول بيانات قبل نهاية اليوم. القيام بذلك يدويًا — رفع، تسمية، انتظار، نسخ الرابط، لصقه، ثم الإعادة من جديد — هو نوع المهام التي تلتهم بعد ظهرك وصبرك معًا.
يوضّح لك هذا الدليل كيف تحوّل ملفات PDF إلى كتب تفاعلية دفعةً واحدة لمجلد كامل عبر حلقة شِل واحدة، وتجمع كل رابط ناتج في ملف 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
تحمل تلك الاستجابة الواحدة كل ما تحتاجه: معرّف الكتاب التفاعلي الجديد ورابطه العام. والآن لم يبقَ سوى أن نشغّله مرة واحدة لكل ملف.
الحلقة: حوّل كل ملف 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
ما تريده فعلًا في النهاية هو جدول بيانات: صفّ واحد لكل كتاب تفاعلي، يحمل معرّفه ورابط مشاركته. مرّر كل نتيجة --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> — ويمكنك استدعاؤه بالمعرّف الذي التقطّه للتو.
جرّب FlipLink مجاناً
حوّل ملف PDF خلال ثوانٍ. لا تسجيل ولا بطاقة ائتمان — ارفع ملفك وانطلق.
Drop your PDF here or click to browse
الحجم الأقصى 40MB
الباقات المدفوعة من $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 محدّد؟” لا يوجد خيار --folder في fliplink flipbook create — فلا تبحث عنه، إنه غير موجود.
وإليك بعض ما ينبغي معرفته عن آلية عمل مجلدات FlipLink: تُنشأ عند الطلب وتختفي مجددًا متى صارت فارغة، فلا حاجة إلى إنشائها مسبقًا. ولوضع كتاب تفاعلي داخل مجلد، استخدم منفذ CLI الاحتياطي — أمر api — الذي يستطيع الوصول إلى أي نقطة نهاية، بما فيها تلك التي لا تملك أمرًا فرعيًا مخصّصًا:
fliplink api PUT /api/assign-to-folder/<flipbookId> --data '{"Folder":"Marketing/Q2"}'
أدرِج ذلك الاستدعاء في فرع النجاح ضمن الحلقة، ومرّر إليه المعرّف الذي التقطّه من استجابة الإنشاء. وإن لم تكن متأكدًا من أسماء الحقول الدقيقة لأي نقطة نهاية، فراجع مرجع API المباشر بدلًا من التخمين — فكل معامل موثّق هناك مع وحدة تحكّم للتجربة المباشرة.
الخلاصة
مجلدٌ من ملفات PDF، وحلقة شِل واحدة، وملف CSV بروابط المشاركة ينتظرك في النهاية — هذه هي المهمة كلها. والنمط نفسه يتوسّع من خمسة ملفات إلى خمسمئة، وتعني عملية التحقق من رمز الخروج أن ملفًا واحدًا معطوبًا لن يُخرج التشغيل عن مساره أبدًا. ولمزيد عن سير العمل المُبرمَج في FlipLink، يغطّي توثيق CLI كل أمر، ويشرح العمليات بالجملة كيف يندرج هذا ضمن خط نشر أوسع — وهو مثاليّ لإبقاء كتالوجات المنتجات محدّثة على دفعات.
قراءات ذات صلة
هل أنت مستعد لإنشاء أول كتاب تفاعلي لك؟
حوّل ملفات PDF إلى فليب بوك ومستندات تفاعلية. ابدأ مع Lifetime Deal من FlipLink — وصول مدى الحياة من $39 فقط.
ادفع مرة واحدة، واستخدم إلى الأبد
10 أو 50 أو 100 فليب بوك · كل الميزات الـ35 · نطاقات غير محدودة
بلا باقات. بلا قيود على الميزات. كل كود LTD يفتح كل شيء.
- كل ميزة مفتوحة — بلا حدود
- قابلة للتكديس — اشترِ أكواداً إضافية وقتما شئت
- قابلة للاستبدال — استبدل القديم بالجديد
- نطاقات مخصصة بلا حدود (CNAME)
- لا رسوم متكرّرة، إطلاقاً
مقالات ذات صلة
FlipLink CLI أم API أم MCP: أي تكامل يناسبك؟
قارن بين CLI وAPI وMCP في FlipLink من حيث الجهد والجمهور وحالة الاستخدام، وشاهد الكتيّب نفسه يُنشأ بثلاث طرق، ثم اختر التكامل المناسب.
البدء مع واجهة سطر الأوامر FlipLink CLI
ثبّت أداة FlipLink CLI وسجّل دخولك وحوّل ملف PDF إلى كتاب متحرك منشور وقابل للمشاركة من سطر الأوامر بأوامر قليلة.
GitHub Actions: توليد كتاب تفاعلي تلقائياً مع كل إصدار
استخدم GitHub Actions لتوليد كتاب تفاعلي من FlipLink مع كل إصدار: ابنِ ملف PDF، شغّل الـ CLI، التقط الرابط المباشر، وأعد نشره.