اسکریپت نویسی برای تنبل‌ها با پایتون(ساخت پی‌دی‌اف)

@amirzenoozi72 طراحی از
@amirzenoozi72 طراحی از

همیشه وقتی میخواستم یه نوشته یا جزوه‌ای رو پی‌دی‌اف کنم عزا می‌گرفتم که حالا باید دونه دونه عکس بگیرم و اگه اون بین یک عکس خراب شه عذابی الهی نازل میشه :)

برای اینکه کارم راحت‌تر شه شروع کردم به نوشتن یه کد پایتون که یه فولدر عکس بهش داده بشه و خروجی یه پی‌دی‌اف از اون عکسا رو برگردونه.

از پایتون ۳ به عنوان زبان برنامه‌نویسی و کتاب‌خونه‌های زیر استفاده کردم:

  • کتاب‌خونه os (برای کار با آدرس فایل‌ها).
  • کتاب‌خونه img2pdf (برای ایجاد پی‌دی‌اف از عکس).
  • کتاب‌خونه argparse (برای گرفتن ورودی از طریق دستورات کامندلاین).

مرحله صفر، نقشه راه

نقشه‌ ذهنی من برای این کد به این شکل بود:

  • آدرس یه فولدر پر از عکس به کد داده شه.
  • عکس‌ها به ترتیب اسم مرتب بشه ( چون به ترتیب معمولا گرفته میشه یا خودمون این اسم گذاری رو براشون انجام بدیم).
  • پی‌دی‌اف ساخته بشه و توی آدرسی که میخوام ذخیره بشه.

مرحله اول، مشخص کردن ورودی‌ها

من این مرحله همیشه ارزش زیادی قائلم چون فکر میکنم ورودی مناسب باعث میشه خیلی کار راحت بشه.

من از argparse استفاده کردم تا بتونم از محیط ترمینال استفاده کنم برای ران کردن کد.

من سه ورودی رو مشخص کردم، آدرس فولدر عکس‌ها، آدرس خروجی و اسم فایل خروجی.


مشخص کردن ورودی‌ها با استفاده از argparser
مشخص کردن ورودی‌ها با استفاده از argparser


نمونه‌ای از ورودی مورد پذیرش به شکل زیر است:

برای تمام ورودی‌ها مقدار پیش فرض هم در نظر گرفتم تا اگه از سمت کاربر داده نشد کد با مشکل رو‌به‌‌رو نشه و کارش رو انجام بده.

'.' که برای مقدار پیشفرض ورودی آدرس‌ها تعیین شده به معنی محل اجرای کد هست.


مرحله دوم، آماده‌سازی ورودی‌ها برای ساخت پی‌دی‌اف

حالا که مرحله اول رو گذروندیم باید ورودی‌هارو اماده کنیم. عکس‌ها براساس اسم مرتب بشن و اگر تغییری روی اسم خروجی لازمه انجام بشه.


استفاده از کتاب‌خونه os برای کار با ادرس‌
استفاده از کتاب‌خونه os برای کار با ادرس‌


اسم عکس‌ها بعد از گرفته شدن از آدرس ورودی توی یه لیست مرتب میشن، اسم خروجی هم اگر بدون پسوند باشه اصلاح میشه و آدرس نهایی فایل خروجی هم با توجه به ورودی ها درست میشه.


مرحله آخر، ساخت پی‌دی‌اف

خب حالا که اسم عکس‌ها مرتب شده و آدرس خروجی هم تولید شده وقت درست کردن پی‌دی‌اف مورد نظرمونه.


استفاده از img2pdf برای ایجاد پی‌دی‌اف
استفاده از img2pdf برای ایجاد پی‌دی‌اف


با استفاده از img2pdf پی‌دی‌اف رو از روی لیست اسم‌ فایل‌ها اگر اون فایل‌ها jpg باشن میسازیم.


کد کامل این اسکریپت روی گیت‌هاب:

https://github.com/amirsina-mandegari/pdf_creator


کد خیلی ساده و حداقلی نوشته شده، خوشحال می‌شم اگه روی گیت هاب نغییراتی که دوست دارید روی کد انجام بدید