دليل cairosvg: تحويل رسوم SVG إلى PNG وPDF عبر طرفية لينكس

نظرة عامة

تعد أداة cairosvg أحد الحلول الرائدة في بيئة لينكس لتحويل الرسومات المتجهية SVG إلى تنسيقات نقطية ومستندات قياسية مثل PNG وPDF بسرعة وكفاءة فائقة. يغطي هذا الدليل العملي كيفية تثبيت الحزمة على نظام Ubuntu، والتعامل مع خيارات التحويل الأساسية، وضبط أبعاد الصور وكثافتها النقطية، بالإضافة إلى بناء سكربت شل لأتمتة معالجة مجموعات الملفات الكبيرة في بيئات العمل الحقيقية.

1. تثبيت حزمة cairosvg وإنشاء ملف متجهي اختباري

لتهيئة بيئة المعالجة على نظام Ubuntu، نقوم بتحديث مستودعات الحزم وتثبيت أداة cairosvg عبر تنفيذ الأمر sudo apt-get update -qq && sudo apt-get install -y python3-cairosvg.

تثبيت حزمة python3-cairosvg عبر مدير الحزم APT

تعتمد أداة cairosvg على مكتبة Cairo لتوفير تحويل فوري وعالي الدقة لرسومات SVG المتجهية إلى هيئات متعددة تشمل PNG وPDF وPS.
يمكن التأكد من استقرار التثبيت ومعرفة الإصدار المتاح في النظام عبر تشغيل cairosvg --version.
⚙️ [أهم الخيارات التشغيلية]

-f, --format : تعيين صيغة الملف المستهدف (png, pdf, ps, svg).
-o, --output : تحديد مسار واسم الملف لحفظ النتيجة الناتجة.
-w, --width : تحديد عرض الصورة المحولة بالبكسل.
-h, --height : تعيين ارتفاع الصورة المحولة بوحدة البكسل.
-s, --scale : تطبيق معامل تكبير أو تصغير قياسي استناداً إلى الحجم الأصلي.
-d, --dpi : تحديد دقة التصيير النقطي ومستوى الكثافة لكل بوصة (DPI).
-b, --background : تعيين لون خلفية محدد بدلاً من الخلفية الشفافة التلقائية.

التحقق من إصدار cairosvg عبر سطر الأوامر

لتجهيز نموذج متجهي لاختبار عمليات التحويل، ننشئ ملف sample.svg يحوي أشكالاً هندسية ونصاً بسيطاً بالاعتماد على أمر cat وآلية Here Document.

إنشاء ملف sample.svg تجريبي عبر الأمر cat

للاطلاع على الحجم الفعلي للملف وبياناته الأساسية في مسار العمل، ننفذ أمر الفحص ls -lh sample.svg.

معاينة تفاصيل وحجم ملف sample.svg

2. تصدير ملفات SVG إلى تنسيقات PNG وPDF القياسية

لتحويل الرسم المتجهي sample.svg إلى صورة نقطية بصيغة PNG، نطبق الأمر cairosvg sample.svg -o sample.png.
يتعرف محرك الأداة تلقائياً على الامتداد المستهدف الممرر في الخيار -o (.png) ليقوم بتصيير الصورة مباشرة دون الحاجة لوسائط إضافية.

تحويل ملف SVG إلى صورة PNG بواسطة cairosvg

للتحقق من سلامة البنية التقنية ومواصفات ملف sample.png الناتج، نشغل الأمر file sample.png.
يوفر هذا الفحص بيانات دقيقة حول نوع الملف، ودقة العرض، وتوزيع الألوان المستخدمة.

فحص بيانات وتنسيق صورة sample.png باستخدام أمر file

إذا تطلب العمل استخراج الرسم المتجهي كمستند مخصص للطباعة والمشاركة، يتم تحويل sample.svg إلى صيغة PDF بتنفيذ cairosvg sample.svg -o sample.pdf.
ينتج عن ذلك مستند PDF متكامل يحافظ على الحدة المتجهية للخطوط والأشكال دون أي تشويش.

تصدير ملف SVG إلى مستند PDF

للتثبت من توافق المستند المُنشأ مع المعايير القياسية لملفات PDF، نستخدم أمر التحقق file sample.pdf.
يؤكد الناتج صحة الترويسة الرقمية للملف وهيكليته البرمجية.

التحقق من مواصفات ملف sample.pdf عبر أداة file

3. التحكم المتقدم في الأبعاد والكثافة النقطية ونسب التكبير

لفرض أبعاد محددة بدقة على الصورة الناتجة، نمرر العرض والارتفاع المطلوبين عبر الأمر cairosvg sample.svg -o sample_800px.png -W 800 -H 800.
يعمل الخياران -W و -H على تثبيت القياسات عند 800 بكسل لكل من المحورين الأفقي والعمودي.

تحديد أبعاد العرض والارتفاع إلى 800 بكسل

لمضاعفة أبعاد الرسم مرتين مع الحفاظ الصارم على نسب العرض إلى الارتفاع الأصلية، ننفذ cairosvg sample.svg -o sample_scale2x.png -s 2.0.
يسمح الخيار -s بقيمة 2.0 بالحصول على صورة PNG مكبرة بضعف الحجم دون فقدان الدقة المتجهية.

تكبير الصورة بمقدار الضعف عبر معامل التكبير -s

في حال استهداف مخرجات ذات جودة فائقة للأغراض الطباعية، نرفع كثافة التصيير عبر تشغيل cairosvg sample.svg -o sample_300dpi.png -d 300.
يضمن تطبيق الخيار -d بمعدل 300 DPI إنتاج صورة عالية التفاصيل والوضوح.

إنتاج صورة PNG عالية الجودة بكثافة 300 DPI

لمراجعة قائمة ملفات PNG المولدة ومقارنة الفروق التخزينية بين خيارات المعالجة المختلفة، نستعرض النتائج بواسطة ls -lh sample*.png.
يتيح هذا الاستعراض رؤية واضحة لأثر تباين الأبعاد ومعدلات DPI على الحجم الإجمالي لكل صورة.

مقارنة أحجام ملفات PNG المتعددة عبر الطرفية

4. أتمتة التحويل الجماعي لملفات SVG باستخدام سكربت شل

لتطبيق آلية التحويل الدفعي الآلي، ننشئ دليلاً تجريبياً وننسخ إليه ملفات SVG متعددة عبر تشغيل mkdir -p svg_batch && cp sample.svg svg_batch/icon1.svg && cp sample.svg svg_batch/icon2.svg.

إنشاء مجلد العمل ونسخ عينات SVG للمهمة الدفعية

باستخدام حلقة التكرار for في بيئة Bash وتقنية استبدال السلاسل ${f%.svg}.png، نقوم بتحويل سائر رسومات SVG داخل المجلد إلى صيغة PNG عبر أمر واحد: for f in svg_batch/*.svg; do cairosvg "$f" -o "${f%.svg}.png"; done.
تتم معالجة كل ملف على حدة تلقائياً مع توليد الصورة النقطية المطابقة لاسمه دون تدخل يدوي.

تنفيذ حلقة تكرار لمعالجة ملفات SVG دفعة واحدة

للتحقق من إتمام المهمة وظهور المخرجات النقطية بجانب الملفات الأصلية داخل مجلد svg_batch، نشغل الأمر ls -lh svg_batch/.
يؤكد العرض اكتمال تصيير كافة الرسوم المتجهية بنجاح وفق التسميات المستهدفة.

عرض محتويات مجلد المعالجة الدفعية بعد انتهاء التحويل

يوفر استخدام cairosvg عبر طرفية لينكس حلاً بالغ السرعة والفاعلية لإنتاج صور PNG ومستندات PDF انطلاقاً من ملفات SVG المتجهية. تمثل هذه الأداة إضافة لا غنى عنها لبناء سكربتات الأتمتة ودمج عمليات المعالجة الرسومية داخل خطوط الإنتاج والتطوير البرمجي.