PrimLagic

ابزارهای آنلاین بدون سرور: تبدیل PDF به اکسل و فشرده‌سازی عکس داخل مرورگر

نویسنده علی عبداللهی · · ۲ دقیقه مطالعه

ابزارهای آنلاین بدون سرور: تبدیل PDF به اکسل و فشرده‌سازی عکس داخل مرورگر

دو ابزار آنلاین ساخته‌ام که یک ویژگی مشترک دارند: فایل شما هیچ‌جا آپلود نمی‌شود. جدول‌ساز جدول‌های PDF را به اکسل تبدیل می‌کند و ابزار تصویر تصویر را فشرده یا تبدیل می‌کند. هر دو کاملاً سمت مرورگرند.

چرا بدون سرور؟

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

جدول‌ساز: چطور از PDF جدول می‌سازد؟

PDF «جدول» ندارد؛ فقط تکه‌های متن با مختصات دارد. کتابخانه‌ی pdf.js موقعیت (x, y) هر تکه را می‌دهد و بقیه‌اش الگوریتم است:

  1. سطرها: تکه‌ها بر اساس مختصات Y خوشه‌بندی می‌شوند؛ آن‌هایی که ارتفاع نزدیک دارند یک سطر می‌سازند.
  2. ستون‌ها: در متن فارسی، متن‌ها راست‌چین هستند، پس به‌جای لبه‌ی چپ، لبه‌ی راست تکه‌ها خوشه‌بندی می‌شود، با یک تلورانس تطبیقی.
  3. پاکسازی: ستون‌های ناقص با هم ادغام و ستون‌های کاملاً خالی حذف می‌شوند.
  4. خروجی: کتابخانه‌ی SheetJS یک فایل xlsx می‌سازد، با یک برگه برای هر صفحه‌ی PDF و نمای راست‌به‌چپ.

محدودیت‌ها: حداکثر ۲۰ مگابایت و ۵۰ صفحه. و چون هیچ مدل یادگیری در کار نیست، PDFهایی که جدولشان خط‌کشی عجیب یا ساختار نامنظم دارد ممکن است خوب تشخیص داده نشوند. PDF اسکن‌شده (که تصویر است و متن ندارد) اصلاً پشتیبانی نمی‌شود.

فشرده‌سازی عکس با Canvas

مرورگر خودش می‌تواند تصویر را روی یک canvas بکشد و با کیفیت دلخواه دوباره خروجی بگیرد. ابزار تصویر همین کار را با یک نوار کیفیت انجام می‌دهد: تصویر را می‌خواند، ابعاد دلخواه را اعمال می‌کند، و در قالب مقصد ذخیره می‌کند. تغییر کیفیت دوباره پردازش را اجرا می‌کند.

نکته‌ی عملی از خود همین سایت: بعد از تبدیل عکس‌ها به WebP، عکس بنیان‌گذار حدود ۱۳ کیلوبایت شد و تصویر هیرو NØX در سه اندازه بین ۱۹ تا ۶۹ کیلوبایت؛ همه زیر بودجه‌ی تعیین‌شده برای صفحه.

هزینه‌های این رویکرد

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

چه زمانی این رویکرد مناسب است

وقتی پردازش سبک است و فایل حساس است. اگر پردازش سنگین است (مثل OCR یا مدل‌های بزرگ)، سرور لازم می‌شود و باید صادقانه به کاربر بگویید فایل می‌رود.

ابزار آنلاینحریم خصوصیجاوااسکریپت