صندوق أدوات PDF يُثبَّت كتطبيق أصيل — أيقونة على سطح المكتب، ونافذة مخصصة، وملفات تصل مباشرة من النظام — دون المرور بمتجر تطبيقات ولا إنشاء حساب: هذا ما يتيحه صيغة PWA (Progressive Web App). يستغل Document Flare كل قدراتها، بما فيها الأندر: عمل كامل دون اتصال، بعد زيارة أولى متصلة.
تطبيق بلا متجر تطبيقات
PWA هو موقع ويب مصحوب بقطعتين: بيان (manifest.webmanifest) يعلن الاسم والأيقونات ووضع standalone — يفتح التطبيق في نافذته الخاصة، بلا شريط عنوان — وعامل خدمي (service worker)، وهو سكربت يتموضع بين التطبيق والشبكة. هو الذي يجعل كل الباقي ممكناً: التثبيت، وفتح الملفات، والعمل دون اتصال.
النتيجة العملية: لا متجر، ولا حساب، ولا شروط استخدام لمنصة طرف ثالث. التحديثات تأتي من الموقع نفسه — وكما سنرى، تُقترَح ولا تُفرَض أبداً.
التثبيت بنقرتين
- افتح documentflare.com في Chrome أو Edge، على الحاسوب أو Android.
- انقر أيقونة التثبيت في شريط العنوان — أو في قائمة المتصفح، «تثبيت Document Flare» / «إضافة إلى الشاشة الرئيسية». على iOS، مرّ عبر Safari: مشاركة ← «إلى الشاشة الرئيسية».
- يفتح التطبيق في نافذته وينضم إلى مشغّل التطبيقات أو سطح المكتب أو الشاشة الرئيسية، كأي تطبيق مثبَّت.
تحفظ صادق: التثبيت يعمل في كل مكان، لكن تكاملات النظام الموصوفة أدناه — الفتح المباشر والمشاركة — من اختصاص متصفحات Chromium. Safari يثبّت التطبيق دون هذه المعالجات.
فتح PDF بنقرة مزدوجة
يعلن البيان عن file_handlers: إجراء /?launch=open، لنوع application/pdf وامتداد .pdf. بعد تثبيت التطبيق في Chrome أو Edge (الإصدار 102 أو أحدث، على الحاسوب)، يعرض النقر بزر الفأرة الأيمن على ملف PDF خيار «فتح بـDocument Flare» — ويمكن للنقرة المزدوجة أن تجعله المعالج الافتراضي.
الآلية محلية بالكامل: يكشف المتصفح window.launchQueue، فيقرأ جسرُنا LaunchQueueBridge واصفات الملفات منه، ويستخرج كائنات File ويحقنها في مساحة العمل عبر مرحّل داخلي (handoff store). المستند مفتوح وجاهز للمعالجة — ولم يعبر أي خادم.
يعلن البيان أيضاً عن معالج بروتوكول web+documentflare:: يستطيع متصفح متوافق ربط هذه الروابط بالتطبيق. رابط web+documentflare:merge-pdf يفتح صفحة الأداة مباشرة — المعرّف مقيّد بصيغة معرّفات الكتالوج، ولا يكون مساراً اعتباطياً أبداً.
استقبال PDF من مشاركة Android
المعالج الثاني في البيان، share_target: هدف مشاركة عبر POST متعدد الأجزاء نحو /share-target، يقبل application/pdf. عملياً: من البريد أو الماسح أو مدير الملفات في Android، «مشاركة ← Document Flare» يودع المستند في التطبيق.
المسار دفاعي بالتصميم. يعترض العامل الخدمي طلب POST — فقط إن كان تنقلاً — ويتحقق من توقيع %PDF- لكل ملف، ويقيّد المشاركة بـ10 ملفات و100 ميغا إجمالاً، ثم يودع الملفات في ذاكرة مؤقتة بقراءة وحيدة قبل إعادة التوجيه إلى مساحة العمل. يعيد الجسر تحميل الملفات ويُستهلك المخزن المؤقت: لا شيء يبقى بعد الفتح. عند خروجك من مسح ضوئي، هذه هي الحلقة المثالية — انظر دليلنا لـالمسح الضوئي إلى PDF من الجوال.
دون اتصال بعد زيارة أولى متصلة
الصياغة الدقيقة مهمة: يعمل Document Flare دون اتصال بعد زيارة أولى متصلة. عند أول تحميل، يخزّن العامل الخدمي التطبيق كاملاً مسبقاً — 380 ملفاً، نحو 8.4 ميغا: صفحات معروضة مسبقاً، وشيفرة، وأيقونات، والبيان. يتقدم التخزين المسبق ملفاً بملف؛ وانقطاع أو حصة ممتلئة يتركان حالة «جزئية»، تُسجَّل ثم تُستكمَل تلقائياً عند عودة الشبكة.
بعدها، ثلاث استراتيجيات:
- التنقلات: الشبكة أولاً، مع رجوع إلى الصفحة المخزنة، ثم إلى هيكل التطبيق — لا صفحة بيضاء أبداً.
- أصول التطبيق: تُقدَّم من الذاكرة المؤقتة، بقائمة بيضاء صارمة — لا يمكن لوحدة بايت من مستند أن تدخلها.
- النماذج الثقيلة: OCR من Tesseract (عامل، ونواة WASM، واللغة الفرنسية — واللغات الأربع الأخرى عند الطلب) والبحث الدلالي (نحو 115 ميغا من أوزان ONNX) يُنزَّلان مرة واحدة متصلين، ثم يبقيان في ذاكرة مؤقتة مخصصة تنجو من التحديثات. إن فتحت هذه الأدوات دون اتصال دون توفر النموذج، يخبرك التطبيق قبل أي معالجة — لا فشل صامت.
إشارتان هادئتان تكملان الجهاز: شارة لا تظهر إلا دون اتصال أو في تخزين مسبق جزئي، وحين تجهز نسخة جديدة يقترح شريط «إعادة التحميل» أو «لاحقاً» — العامل الخدمي الجديد ينتظر إيماءتك، ولا يفرض نفسه أثناء الجلسة أبداً.
سيناريو العزل الشبكي، فعلاً
نتيجة كل هذا: بعد جلسة متصلة نزّلت التطبيق والنماذج المرغوبة، يمكنك قطع الشبكة — وضع الطيران، جهاز معزول، بيئة air-gapped. تعمل أدوات الكتالوج المحلية الـ52، والسجل أيضاً. وهذا قابل للتحقق لا مجرد ادعاء: في أدوات المطور، تبويب الشبكة، فعّل «Offline» ثم عالج ملف PDF — كل شيء يُنفَّذ، ولا طلب ينقل المستند. تبويب Application ← Cache Storage يعرض الذاكرتين المؤقتتين، df-app-* وdf-models-v1.
استثناء معترف به: سبع أدوات موسومة «خدمة بعيدة عابرة» — تحويلات Word/Excel/PowerPoint/HTML إلى PDF وبالعكس، والتلخيص بالذكاء الاصطناعي — ترسل المستند إلى خدمة عابرة بعد موافقة صريحة. تتطلب اتصالاً بحكم بنائها، وترفض العمل دونه.
السجل المحلي: في IndexedDB، قابل للمحو بإيماءة
يعيش سجل مساحة العمل في IndexedDB على جهازك: بيانات وصفية ووحدات بايت للنتائج، مقيّد بـ20 مدخلاً ونحو 25 ميغا من الوحدات المحفوظة — وما بعدها تُفصَل وحدات بايت أقدم المدخلات، بينما تبقى البيانات الوصفية. زر «تفريغ المساحة» يمحو هذا السجل كاملاً — أسماء الملفات ووحدات البايت — مع الملفات المحمّلة والمفضلة. وحدها تنجو التفضيلات التي تعطّل السجل: فهي إعدادات خصوصية، لا بيانات.
حدود صادقة
- الزيارة الأولى المتصلة إلزامية: لا شيء يعمل دون اتصال انطلاقاً من البرد، والتخزين المسبق يمثل نحو 8.4 ميغا من التنزيل.
- iOS: التثبيت ممكن عبر Safari، لكن لا الفتح المباشر للملفات ولا هدف المشاركة ولا معالج البروتوكول مدعومة.
- الأدوات البعيدة: التحويلات والتلخيص السبعة المذكورة تبقى بعيدة المنال دون اتصال.
- ذكاء المتصفح الاصطناعي: الترجمة والتلخيص المحليان يعتمدان على نماذج Chrome/Edge 138+ التي يديرها المتصفح — لا ذاكرتنا المؤقتة.
- تخزين مسبق جزئي: عند انقطاع، يبقى التطبيق قابلاً للاستخدام متصلاً ويكمل مخزونه عند عودة الشبكة — لكن العمل دون اتصال غير مضمون إلا باكتمال الحالة.
للتعمق أكثر
يفصّل المقال المحوري عن أدوات PDF بدون رفع المعمارية المحلية؛ ويُصوغ مقال خصوصية المعالجة المحلية الوعد تقنياً. وبما أن كل شيء يحدث على جهازك، يظل تبويب الشبكة في أدوات المطور أفضل دليل: لا طلب ينقل مستندك، في أي عملية كانت.



