ابزارهای آنلاین بدون سرور: تبدیل PDF به اکسل و فشردهسازی عکس داخل مرورگر
دو ابزار آنلاین ساختهام که یک ویژگی مشترک دارند: فایل شما هیچجا آپلود نمیشود. جدولساز جدولهای PDF را به اکسل تبدیل میکند و ابزار تصویر تصویر را فشرده یا تبدیل میکند. هر دو کاملاً سمت مرورگرند.
چرا بدون سرور؟
- حریم خصوصی: فایل PDF ممکن است کارنامه یا موجودی انبار باشد. وقتی فایل از دستگاه بیرون نمیرود، نیازی نیست به کسی اعتماد کنید.
- هزینه: سرور پردازش لازم ندارم؛ سایت استاتیک است.
- سرعت: بدون آپلود و دانلود.
جدولساز: چطور از PDF جدول میسازد؟
PDF «جدول» ندارد؛ فقط تکههای متن با مختصات دارد. کتابخانهی pdf.js موقعیت (x, y) هر تکه را میدهد و بقیهاش الگوریتم است:
- سطرها: تکهها بر اساس مختصات Y خوشهبندی میشوند؛ آنهایی که ارتفاع نزدیک دارند یک سطر میسازند.
- ستونها: در متن فارسی، متنها راستچین هستند، پس بهجای لبهی چپ، لبهی راست تکهها خوشهبندی میشود، با یک تلورانس تطبیقی.
- پاکسازی: ستونهای ناقص با هم ادغام و ستونهای کاملاً خالی حذف میشوند.
- خروجی: کتابخانهی SheetJS یک فایل xlsx میسازد، با یک برگه برای هر صفحهی PDF و نمای راستبهچپ.
محدودیتها: حداکثر ۲۰ مگابایت و ۵۰ صفحه. و چون هیچ مدل یادگیری در کار نیست، PDFهایی که جدولشان خطکشی عجیب یا ساختار نامنظم دارد ممکن است خوب تشخیص داده نشوند. PDF اسکنشده (که تصویر است و متن ندارد) اصلاً پشتیبانی نمیشود.
فشردهسازی عکس با Canvas
مرورگر خودش میتواند تصویر را روی یک canvas بکشد و با کیفیت دلخواه دوباره خروجی بگیرد. ابزار تصویر همین کار را با یک نوار کیفیت انجام میدهد: تصویر را میخواند، ابعاد دلخواه را اعمال میکند، و در قالب مقصد ذخیره میکند. تغییر کیفیت دوباره پردازش را اجرا میکند.
نکتهی عملی از خود همین سایت: بعد از تبدیل عکسها به WebP، عکس بنیانگذار حدود ۱۳ کیلوبایت شد و تصویر هیرو NØX در سه اندازه بین ۱۹ تا ۶۹ کیلوبایت؛ همه زیر بودجهی تعیینشده برای صفحه.
هزینههای این رویکرد
- کتابخانهها از CDN بارگذاری میشوند (نسخهی مشخص)، پس به اینترنت نیاز دارد.
- روی دستگاه ضعیف و فایل بزرگ ممکن است کند باشد.
- هیچ آماری از استفاده ندارم، چون چیزی از فایلها به من نمیرسد.
چه زمانی این رویکرد مناسب است
وقتی پردازش سبک است و فایل حساس است. اگر پردازش سنگین است (مثل OCR یا مدلهای بزرگ)، سرور لازم میشود و باید صادقانه به کاربر بگویید فایل میرود.