يُفتح هذا بمجرّد أن تختار ملفاً في الأعلى.جاهزة — اقطع الاتصال بالإنترنت وستظل تعمل.غير متاحة في هذا المتصفح (كل شيء آخر يظل يعمل).تحتاج إلى https:// أو localhost للتخزين المؤقت دون اتصال.التخزين المؤقت غير متاح هنا، لكن لا شيء يُرفع في الحالتين.ملفاتك لم تذهب إلى أي مكان. {total} ملفاً حُمِّلت، كلها ملفات هذه الصفحة نفسها. {platform}اتصل شيءٌ بـ {hosts}، وهو ما لا تفعله هذه الأداة أبداً. عُدَّ ذلك جديراً بالتحقيق. {platform}نصوصُ الإعلانات والقياس وزرّ التبرّع الخاصة بالصفحة حُمِّلت من مضيفٍ {hosts}؛ ولم يُعطَ واحد منها ملفاً ولا بايتاً منه.نصوصُ الإعلانات والقياس وزرّ التبرّع الخاصة بالصفحة حُمِّلت من {hosts} مضيفاً؛ ولم يُعطَ واحد منها ملفاً ولا بايتاً منه.حدث خطأ ما: {detail}. أعد تحميل الصفحة لتبدأ من جديد.جارٍ قراءة {count} ملف…جارٍ قراءة {count} ملف…جرّب مثالاًجارٍ إنشاء مثال…تعذّر على هذا المتصفّح إنشاء المثال. اختر ملفاً بدلاً من ذلك.
الصورة يُفكّ ترميزها وتُعدَّل وتُنظَّف وتُكتَب في ملف PDF بمتصفحك أنت، بلا شيء إلا الحساب والمرمِّزات التي يأتي بها أصلاً. لا تملك هذه الأداة أي وظيفة شبكية على الإطلاق — لا شيء تجلبه ولا شيء ترسله — وسببُ أهمية ذلك هنا هو ما يصوّر الناس صفحاتِه: جواز سفر، وكشف راتب، وعقد إيجار، واستمارة طلب منهم مكتبٌ أن «يمسحوها ويعيدوها».
✗ بلا رفع
✗ بلا حساب
✗ بلا علامة مائية
✓ يعمل دون اتصال
✓ مفتوح المصدر
فحص حي:جارٍ الفحص…
دون اتصال:جارٍ الفحص…
لا داعي لأن تصدّقنا: افتح أدوات المطوّر، وراقب تبويب «الشبكة»، ثم امسح صفحة. لن يحمل أي طلب صورةً ولا مصغَّرة ولا اسم ملف ولا موضع ركن واحد. أو اقطع الاتصال بالإنترنت وامسح واحدة رغم ذلك.
كيف يمكن التحقق من وعد الخصوصية
مستنداتك لا سبيل لها إلى الخروج. تُسمّي Content-Security-Policy كل عنوان يجوز لهذه الصفحة الاتصال به، وليس واحد منها لنا. فلا يوجد هنا طرفٌ تُجمَع عنده صورك، ولا في الشيفرة ما يرسلها إليه لو وُجد.
لا نموذج، فلا شيء يُنزَّل ولا شيء يُسأل عنه. إيجادُ أركان الصفحة الأربعة يجري بالحساب: تدرّجُ الصورة، وتصويتٌ للخطوط المستقيمة التي فيها، وفحصُ ما تحت كل ضلع من أضلاع المستطيل الفائز فعلاً. لا أوزان، ولا زمن تشغيل استدلال، ولا شيء يُجلَب عند أول استعمال، ولا شيء يتصرّف على مستند غيرك تصرّفاً غير الذي يتصرّفه على مستندك — انظر src/detect.js.
المستند لا يحمل تاريخاً ولا مؤلفاً ولا اسم جهاز. المسحُ شيء يرسله الناس إلى الناس، وغالباً لأن مكتباً طلبه. والشيء الوحيد الذي يُكتَب في ملف PDF عدا الصفحات نفسها هو اسم هذه الأداة، وعنوانٌ إن كتبت واحداً. فلا تاريخ إنشاء، ولا مؤلف، ولا رقم تسلسلي، ولا شيء مشتقّ من ساعتك ولا من أسماء ملفاتك ولا من حاسوبك — انظر src/document.js.
لا شيء هنا يجلب شيئاً. لا يوجد fetch ولا XMLHttpRequest ولا sendBeacon في أي موضع من src/. والعمل هو getImageData، وبعض الحلقات على البايتات، ومرمِّز JPEG الخاص بالمتصفح — وكلها مثبَّتة على جهازك أصلاً.
يعمل دون اتصال. اقطع الاتصال بالشبكة، وتبقى الأداة كما هي، لأنه لم تكن فيها خطوة شبكية قط. وهذا أبسط برهان على الإطلاق — وهو الذي يستحق أن تجرّبه قبل أن تمسح جواز سفر.
تحقّق بنفسك. لا شيء مما سبق عليك تصديقه دون تحقق. تُولَّد هذه الصفحة من القوالب والإعدادات في المستودع بواسطة سكربت بناء يمكنك قراءته وتشغيله بنفسك، والنتيجة موجودة في فرع dist — فقارِن إذن بين ما يُقدَّم فعلا وما ينتجه بناء المصادر:
الملفات الجديرة بالقراءة أولا هي config/site.toml من أجل سياسة أمان المحتوى (Content-Security-Policy)، وsrc/detect.js لكيفية إيجاد الأركان دون نموذج من أي نوع، وsrc/warp.js للتعديل، و src/clean.js لكيفية قسمة الإضاءة غير المتساوية خارجاً.
إذا حذّرك برنامج الحماية في عملك من رفع ملف. إنه يراقب لحظة اختيار ملف في المتصفّح، ولا يمكنه أن يعرف إن كانت الصفحة تنوي إرساله — فيحذّر عند الاختيار. لا شيء يُرسَل من هنا: افتح أدوات المطوّر في متصفّحك، وانتقل إلى Network، ثم اختر ملفاً. لا يوجد أي طلب يحمله، ولا أي طلب أصلاً عدا المعاينة المحلية للصفحة. وهو الفحص نفسه الذي يستطيع أي شخص في قسم تقنية المعلومات لديك إجراؤه في نصف دقيقة.
1 اختر الصور
صورةٌ لكل صفحة، ملتقَطة من أي موضع فوقها. والصفحة كلها يجب أن تكون في الإطار، والأركان الأربعة يُستحسَن أن تكون ظاهرة أو تكاد — وكل ما عدا ذلك، الميلُ والظلُّ والمكتبُ الذي هي ملقاة عليه، هو ما وُجِدت هذه الأداة له. أضِف عدة صور فتصير صفحات مستند واحد، بالترتيب الذي تضيفها به.
2 ضَع الأركان على الصفحة
اضغط أي موضع على الصورة فيأتي أقرب ركن إلى إصبعك؛ ثم اسحبه إلى ركن الصفحة. وTab يصل إلى ركن من لوحة المفاتيح، ومفاتيح الأسهم تحرّكه بكسلاً واحداً وShift عشرة. ولا شيء هنا نهائي — فالمسح يُؤخَذ من حيث تنتهي الأركان الأربعة.
اختر صورة فتظهر هنا، وأركانها الأربعة موجودة لك.
3 نظِّفها
الذي أدناه هو النتيجة الحقيقية، تنتجها الشيفرة نفسها التي تكتب الملف — معدَّلةً، والإضاءةُ غير المتساوية مقسومة خارجاً. وهي مرسومة بحجم الشاشة بينما تختار؛ أما الملف نفسه فيُصنَع بدقة الصورة هي.
ملوَّنة، مع تسوية الإضاءة يُقاس الورق عبر الصفحة ويُقسَم خارجاً، فيذهب الظلّ ويعود الورق أبيض، بينما يبقى الختمُ والتوقيعُ بالحبر الأزرق والسطرُ المظلَّل على ألوانها. وهي التي تُستعمَل حين يكون اللون جزءاً من المستند.
تدرّج رمادي التسوية نفسها، بلا لون. أصغر من الملوَّنة وأرفق بصورة فوتوغرافية أو بتوقيع مما هو الأبيض والأسود.
أبيض وأسود كل بكسل يُقرَّر في مقابل جواره هو لا في مقابل رقم واحد للصفحة كلها، وهو ما يُبقي الكتابة التي في ظلّ مقروءة. وهذا ما يجعل المسح صغيراً: فعقدٌ من عشرين صفحة يخرج بهذه الطريقة دون ميغابايت وبنحو خمسة عشر لو كان صوراً فوتوغرافية. وليس فيه درجات وسطى، فما عليه صورة فوتوغرافية ينبغي ألا يستعمله.
اتركها وشأنها معدَّلةً ولا شيء غير ذلك. لصفحة يهمّ فيها الورق نفسه — شيء قديم، أو شيء ملوَّن، أو صورة فوتوغرافية.
تظهر الصفحة المعدَّلة هنا متى وُجِدت صورة تُعدَّل.
يجري التعديل…
ينطبق الإعداد على كل صفحة. فالصفحات في مستند واحد نُظِّفت على نحو مختلف تبدو مستندين.
4 احفظ المستند
يُكتَب ملف PDF هنا، في ذاكرة هذه الصفحة، صفحةً صفحة. ولا يقف في الطرف الآخر من هذه الأداة خادم يُرسَل إليه كشفُ راتب أو جوازُ سفر أو عقد، ولا في الشيفرة ما يرسل واحداً لو وُجد.
دقة الطباعة كم تُسمّى ورقةً كبيرةً لعدد بكسلات معيّن. وهي تغيّر المقاس الذي يُطبَع به المستند، ولا تغيّر بكسلاً واحداً من المسح.
الضلع الأكبر سقفٌ للصفحة المعدَّلة. فصورةُ صفحة تحمل من البكسلات أكثر بكثير مما تساويه الصفحة، و2400 على الضلع الطويل نحو 200 DPI على ورقة A4.
الجودة للوضعين الملوَّن والرمادي، وهما مخزَّنان JPEG. أما صفحات الأبيض والأسود فمخزَّنة بالضبط، فلا يفعل بها هذا شيئاً.
عنوان المستند (اختياري) الشيء الوحيد الذي يُكتَب في المستند عدا الصفحات. فلا تاريخ، ولا مؤلف، ولا شيء عن هذا الجهاز — انظر src/document.js.
افتحه قبل أن ترسله. فالذي في المستند هو ما كان على الشاشة في الخطوة 3، صفحةً بصفحة.
لا صفحات تُكتب.لا يوجد CompressionStream في هذا المتصفح، وهو ما يحتاجه وضع الأبيض والأسود لضغط الصفحة. اختر أحد الأوضاع الأخرى.لم يستطع هذا المتصفح ترميز الصفحة بصيغة JPEG.لم يستطع هذا المتصفح ترميز الصفحة.هذه الزوايا الأربع لا تكوّن صفحة.وُجِدت الأركان الأربعة. تحقّق منها، واسحب ما حطّ منها في غير موضعه.لم تكن حوافّ الصفحة واضحة بما يكفي للتيقّن منها. وهذه الأركان تخمين — فاسحبها إلى الصفحة قبل أن تمضي.لم يمكن تمييز صفحة في هذه الصورة، فالأركان عند حوافّها. اسحبها إلى الصفحة.لا شيء يُوجَد في هذه الصورة — فليس فيها حوافّ البتة.هذه الصورة أصغر من أن تُوجَد فيها صفحة.هذه الأركان لك الآن. و«جِد الأركان من جديد» يقيس الصورة من جديد.الركن العلوي الأيسرالركن العلوي الأيمنالركن السفلي الأيمنالركن السفلي الأيسر{corner}، عند {x} عرضاً و{y} نزولاً. ومفاتيح الأسهم تحرّكه، وShift معها يحرّكه عشرة بكسلات في كل مرة.حرّر الصفحة {index}أزِل الصفحة {index}حرّك الصفحة {index} أقدمحرّك الصفحة {index} أحدثصفحة واحدة{count} صفحةA4 أو A5US LetterUS Legalبطاقة عملخرجت الصفحة {ratio}، وهي نسبة {paper}.خرجت الصفحة {ratio}، وهي نسبة {paper} على جنبها.خرجت الصفحة {ratio}، وهي ليست ورقة قياسية.استُنتِجت النسبة من المنظور الذي في الصورة، فهي نسبة الصفحة لا النسبة التي بدت بها في الصورة.التُقطت الصورة مواجِهةً، فالنسبة مقيسة من الحوافّ مباشرة.{width} في {height} بكسل، نحو {dpi} DPI عبر صفحة بذلك المقاس — وذلك يكفي للطباعة.{width} في {height} بكسل، نحو {dpi} DPI عبر صفحة بذلك المقاس. حسنٌ على الشاشة، وناعمٌ قليلاً على الورق.{width} في {height} بكسل، نحو {dpi} DPI عبر صفحة بذلك المقاس. التقط الصورة من أقرب إن كان هذا سيُطبَع.{width} في {height} بكسل.ملأت الصفحة {percent}% من الصورة.لم تملأ الصفحة إلا {percent}% من الصورة، فأكثر ما صُوِّر كان مكتباً. اقترب في المرة القادمة.لطيفة: يُسوَّى الورق ولا شيء غير ذلك تقريباً. لصفحة عليها رصاص خفيف أو صورة فوتوغرافية.الإعداد المعتاد: يعود الورق أبيض ويعود النصّ المطبوع أسود.شديدة: كل ما هو رمادي يُدفَع إلى السواد أو إلى البياض. وهي أنظف ما تكون على صفحة مطبوعة سادة، ومُتلِفة على كل ما عليه صورة.الصفحة {done} من {total}…تجري كتابة المستند…{name} — {size}، {pages}.{name} — {size}، {pages}.مخزَّن ببتّ واحد لكل بكسل ومضغوط ضغطاً دقيقاً، ولهذا هو بهذا الصغر.الصفحات مخزَّنة JPEG بالجودة التي اخترتها.الصفحات مخزَّنة PNG، وهي بلا خسارة وهي ما تريده صورةٌ من لونين — فـ JPEG كانت ستكون أكبر ومغبَّشة حول كل حرف.لا تاريخ، ولا مؤلف، ولا اسم جهاز: فالشيء الوحيد في المستند عدا الصفحات هو اسم هذه الأداة.كل ورقة تصير بالمقاس الذي هي عليه صفحتُها حقاً، بالدقة أعلاه. ولا شيء يُحاط بأشرطة.كل صفحة تُوضَع على ورقة {name}، داخل الهامش، مهما كانت النسبة التي خرجت بها.لم يستطع هذا المتصفح فتح {name}. فإن كانت صورة HEIC من iPhone، فحوِّلها أولاً.اختر صورة واحدة على الأقل أولاً.حدث خطب ما أثناء صنع الملف: {detail}مستنداتك لم تذهب إلى أي مكان. {total} ملفاً حُمِّلت، كلها ملفات هذه الصفحة نفسها. {platform}اتصل شيءٌ بـ {hosts}، وهو ما لا تفعله هذه الأداة أبداً. عُدَّ ذلك جديراً بالتحقيق. {platform}نصوصُ الإعلانات والقياس وزرّ التبرّع الخاصة بالصفحة حُمِّلت من مضيفٍ {hosts}؛ ولم يُعطَ واحد منها صورةً ولا بايتاً منها.نصوصُ الإعلانات والقياس وزرّ التبرّع الخاصة بالصفحة حُمِّلت من {hosts} مضيفاً؛ ولم يُعطَ واحد منها صورةً ولا بايتاً منها.
هل أنجزت المهمة؟
ما الذي حدث خطأ؟
شكرا — هذا يساعد.
يُرسَل الجواب فقط، وفقط عند الضغط على زر. لا يُرسَل ملفك أبدا، ولا اسمه، ولا أي شيء عنه.
# الماسح الضوئي للمستندات — صورة صفحة، مُعدَّلة
صوِّر الصفحة. واسترجع شيئاً يبدو ممسوحاً ضوئياً.
> حوِّل صورةً بهاتف لصفحة إلى ملف PDF معدَّل ومتساوي الإضاءة. تُوجَد الأركان لك، ويُلغى أثر المنظور، ويُقسَم الظلّ خارجاً. يعمل بالكامل داخل متصفحك: ولا يُرفع شيء.
هذه الصفحة أداة تفاعلية تعمل بالكامل داخل متصفحك، على العنوان https://abox.tools/ar/الماسح-الضوئي-للمستندات/ — ولا يُرفَع أي شيء تعطيه إياها. وفيما يلي كل ما تقوله الصفحة عن الأداة بالكلمات؛ لاستخدامها، افتح العنوان.
## مستنداتك لا تُرفع **أبدا**. لا يوجد خادم.
الصورة يُفكّ ترميزها وتُعدَّل وتُنظَّف وتُكتَب في ملف PDF بمتصفحك أنت، بلا شيء إلا الحساب والمرمِّزات التي يأتي بها أصلاً. لا تملك هذه الأداة أي وظيفة شبكية على الإطلاق — لا شيء تجلبه ولا شيء ترسله — وسببُ أهمية ذلك هنا هو ما يصوّر الناس صفحاتِه: جواز سفر، وكشف راتب، وعقد إيجار، واستمارة طلب منهم مكتبٌ أن «يمسحوها ويعيدوها».
- ✗ بلا رفع
- ✗ بلا حساب
- ✗ بلا علامة مائية
- ✓ يعمل دون اتصال
- ✓ مفتوح المصدر
## كيف تمسح مستنداً بكاميرا هاتفك
1. **صوِّر الصفحة.** من فوقها، والصفحة كلها في الإطار وأركانها الأربعة ظاهرة أو تكاد. ولا يلزم أن تكون الصورة مواجِهة ولا أن تكون الإضاءة متساوية: فالميل والظلّ هما ما وُجِدت هذه الأداة له. والذي يهمّ ملءُ الإطار — فالصفحة المصوَّرة من عرض الغرفة ليس فيها تفصيل يُستعاد.
2. **تحقّق من الأركان الأربعة.** تُوجَد لك حين تُقرأ الصورة، وتقول الصفحة ذلك حين لا تكون واثقة — فالصفحة على مكتب بلون الورق نفسه يصعب حقاً رؤية حدّها. اضغط أي موضع على الصورة فيأتي أقرب ركن إلى إصبعك، أو صِل إلى واحد بـ `Tab` وحرّكه بمفاتيح الأسهم.
3. **اختر ماذا يُفعَل بالضوء.** «ملوَّنة، مع تسوية الإضاءة» يقيس الورق عبر الصفحة ويقسمه خارجاً، فيذهب الظلّ ويحتفظ الختم أو التوقيع بلونه. و«أبيض وأسود» يمضي أبعد وهو ما يجعل المسح صغيراً بما يكفي لإرساله بالبريد. وما تراه على الشاشة هو النتيجة الحقيقية، تنتجها الشيفرة نفسها التي تكتب الملف.
4. **أضِف الصفحات الأخرى.** كل صورة تضيفها تصير صفحة أخرى من المستند نفسه، بالترتيب الذي تُسرَد به، وكل واحدة تحتفظ بأركانها هي. والأسهم التي على صفحة في الشريط تحرّكها أقدم أو أحدث.
5. **احفظ ملف PDF، وافتحه قبل أن ترسله.** يُكتَب المستند هنا، في ذاكرة هذه الصفحة. ولم يُرفَع شيء لصنعه، ولم يُبلَّغ عنه شيء إلى أي مكان.
## النسخة الأطول
[كيف تمسح مستنداً ضوئياً بهاتفك](https://abox.tools/ar/أدلة/مسح-مستند-بهاتفك/): ما الذي يفصل صورةً فوتوغرافية لصفحة عن مسحٍ ضوئي لها: الزاويةُ والضوءُ غيرُ المتساوي وحجمُ الملف. كيف تلتقط الصورة، وماذا تصلح بعدها، ولماذا لا يحتاج شيءٌ من ذلك إلى خادم.
## أيضا في الصندوق
- [استخراج الصوت من الفيديو](https://abox.tools/ar/استخراج-الصوت-من-الفيديو/): أفلِت فيديو وخذ صوته. الصورة لا تُفكّ شفرتها أبداً، ولا يُرفع شيء.
- [مقصّ الصوت](https://abox.tools/ar/قص-الصوت/): علّم على الأجزاء التي تستحق البقاء وهو يعمل. وخذها ملفاً واحداً، مقصوصاً حيث قلت.
- [محرّر الصوت](https://abox.tools/ar/تحرير-الصوت/): شغّلها بالمقلوب، وغيّر السرعة، وارفع تسجيلاً خافتاً — كل ذلك هنا، على جهازك.
- [دامج PDF ومقسّمه](https://abox.tools/ar/دمج-pdf/): صفحات تُنقَل من مكان إلى مكان دون رحلة ذهاب وإياب إلى خادم.
## أسئلة
### هل يُرفع مستندي إلى أي مكان؟
لا. الصورة يُفكّ ترميزها وتُعدَّل وتُنظَّف وتُكتَب في ملف PDF بمتصفحك أنت على جهازك أنت. لا تملك هذه الأداة أي وظيفة شبكية على الإطلاق — فهي لا تجلب شيئاً ولا ترسل شيئاً — و `Content-Security-Policy` الخاصة بالصفحة تُسمّي كل عنوان يجوز لها الاتصال به، وليس واحد منها لنا. حمِّل الصفحة مرة، واقطع اتصالك بالإنترنت، وستظل تعمل.
### كيف يجد أركان الصفحة دون نموذج؟
بالبحث عن الحوافّ المستقيمة الطويلة الأربع التي يتألف منها المستطيل. تُصغَّر الصورة، ويُؤخَذ التدرّج — أين تتغيّر الصورة، وفي أي اتجاه — وكل بكسل يقع على حافّة يصوّت للخطّ المستقيم الذي كان سيقع عليه. وتُزاوَج الخطوط القوية في مستطيلات مرشَّحة، ويُقيَّم كل مرشَّح بالمشي على أضلاعه الأربعة وسؤالِ كم من كل ضلع تحته حافّةٌ حقاً، وهل الأربعة حدُّ شيء واحد: فالصفحة أفتح مما حولها، أو أدكن، لكنها الشيء نفسه على الأضلاع الأربعة، وهو ما يمنع أن يُحسَب سطرُ نصّ أسفلَ الصفحة. ولا أوزان، ولا شيء يُنزَّل، والحساب هو الحساب نفسه لكل مستند يمرّ به.
### الأركان التي وجدها خطأ. فماذا الآن؟
اسحبها. فالأركان موضع بداية ولا تكون قراراً أبداً: والمسح يُؤخَذ من حيث تنتهي الأربعة. اضغط أي موضع على الصورة فيقفز أقرب ركن إلى إصبعك، وذلك أيسر من إصابة مقبض صغير، ومفاتيح الأسهم تحرّك الركن الذي عليه التركيز بكسلاً في كل مرة. وتقول لك الصفحة كذلك حين تكون الأركان تخميناً لا اكتشافاً، وتعلّم على تلك الصفحة في الشريط — والصفحة الملقاة على مكتب بلونها تقريباً هي السبب المعتاد، لأنه لا حافّة هناك تقريباً لتُوجَد.
### لماذا تخرج الصفحة المعدَّلة بالنسبة الصحيحة، لا مضغوطة؟
لأن النسبة تُستعاد من المنظور لا تُقاس من الحوافّ. فالصفحة المصوَّرة بميل يكون ضلعها البعيد مختصَراً، فالطريقة البديهية — خذ أطول زوج من الأضلاع المتقابلة وسمِّ ذلك النسبة — تنتج ورقة A4 قصيرة ظاهرةً للعين، وهو ما تعطيك إياه أكثر الماسحات على الويب. والحقيقة أن صورة المستطيل تحمل ما يكفي من المعلومات لاستعادة نسبة المستطيل وبُعد الكاميرا البؤري معاً، ما دامت الكاميرا عادية؛ وتلك نتيجةٌ لـ Zhang وHe من 2003، وهي ما يفعله `src/geometry.js`. وحيث تكون الصورة مواجِهة فلا منظور يُعمَل منه ولا حاجة إليه، لأن الحوافّ تكون حينئذ دقيقة — فيتراجع إليها، وتقول الصفحة أيُّ الاثنين أجاب.
### ماذا يفعل «التنظيف» بالصورة بالضبط؟
يقسم الضوء خارجاً. فيُقاس سطوعُ الورق نفسه عبر الصفحة — شبكةٌ من المربّعات، وفي كل مربّع مئينٌ عالٍ من السطوع، والنصّ أدكن وأندر من أن يحرّكه — ويُقسَم كل بكسل على الورق المقدَّر عند تلك النقطة. فيبقى الحبر، متساوي الإضاءة، وقد ذهب الظلّ وذهب الخفوت. وليس ذلك رفعَ التباين: فرفعُ تباين صفحة مصوَّرة يجعل الجزء الفاتح أبيض والجزء الداكن أسود والكتابةَ التي في الجزء الداكن غير مقروءة، ولهذا تجعل «التسوية التلقائية» هذه الصور أسوأ لا أحسن.
### لماذا وضع الأبيض والأسود أصغر بهذا القدر؟
لأن الصورة التي فيها لونان جزءٌ يسير حقاً من بيانات صورة فيها ستة عشر مليوناً، وهي مخزَّنة هكذا هنا: بتٌّ واحد لكل بكسل، مرصوصة ثمانيةً في البايت ومضغوطة ضغطاً دقيقاً، لا على هيئة JPEG لصورة بالأبيض والأسود. وعلى الصفحات نفسها يخرج أصغر بنحو ثمانية عشر ضعفاً من الوضع الملوَّن، فيحطّ عقدٌ من عشرين صفحة دون ميغابايت لا عند خمسة عشر أو نحوها. والعتبة عتبةُ Sauvola، وهي تقرّر كل بكسل في مقابل متوسط جواره وانتشاره لا في مقابل رقم واحد للصفحة كلها — وذلك ما يبقي الكتابة التي داخل ظلّ. وليس فيه درجات وسطى، فالصفحة التي عليها صورة فوتوغرافية ينبغي أن تستعمل أحد الوضعين الآخرين.
### هل أستطيع وضع عدة صفحات في ملف PDF واحد؟
نعم. كل صورة تضيفها تصير صفحة أخرى، بالترتيب الذي تُسرَد به، وكل صفحة تحتفظ بأركانها هي — فرصّةٌ من الصفحات مصوَّرةٌ واحدةً بعد أخرى تصير مستنداً واحداً. والأسهم التي على كل صفحة في الشريط تحرّكها أقدم أو أحدث. وإعداد التنظيف مشترك بينها كلها عن قصد: فالصفحات في مستند واحد نُظِّفت على نحو مختلف تبدو مستندين.
### هل يقرأ النصّ، فأستطيع البحث في ملف PDF؟
لا. فلا طبقة نصّ ولا تعرّف على الحروف: والذي يخرج صورةٌ لصفحة على صفحة. وفعلُ ذلك كما ينبغي يعني محرّك OCR، وهو عشرات الميغابايتات من النموذج تُنزَّل — وماسحُ مستندات يجلب نموذجاً قبل أن يستطيع قراءة كشف راتبك كان سيكون ماسحاً له سببٌ للاتصال ببيته عن كشوف الرواتب. فإن احتجت إلى النصّ، فوضع الأبيض والأسود ينتج بالضبط صنف الملفات التي تعمل عليها برمجيات OCR على جهازك أنت أحسن ما تعمل.
### خرجت ضبابية. لماذا؟
في الغالب الأعم لأن الصفحة كانت صغيرة في الصورة. واللوحة التي تحت المعاينة تقول كم ملأت الصفحةُ من الإطار وكم يبلغ ذلك تقريباً من النقاط في البوصة عبر ورقة بذلك المقاس — ودون نحو 150 DPI يبدو المسح المطبوع ناعماً، ولا تستطيع أداةٌ فعل شيء بتفصيل لم يكن في الملف قط. اقترب بدل أن تكبّر، واثبت، ودع الكاميرا تركّز على الصفحة قبل أن تضغط الزر. واهتزازُ الكاميرا هو السبب الآخر، وهو غير قابل للاستعادة كذلك.
### هل هو مجاني، وهل أحتاج إلى حساب؟
هو مجاني، ولا حساب ولا تسجيل دخول ولا فترة تجريبية ولا حدّ للصفحات ولا علامة مائية. ولا حدّ لحجم الصور كذلك، إذ لا خادم يدفع ثمنها — فالعمل يجري على جهازك أنت. ويحمل الموقع إعلانات، وهي ما يدفع تكاليفه؛ ولا يُعطى المعلنون شيئاً عن مستنداتك.
## كيف يمكن التحقق من وعد الخصوصية
- **مستنداتك لا سبيل لها إلى الخروج.** تُسمّي Content-Security-Policy كل عنوان يجوز لهذه الصفحة الاتصال به، وليس واحد منها لنا. فلا يوجد هنا طرفٌ تُجمَع عنده صورك، ولا في الشيفرة ما يرسلها إليه لو وُجد.
- **لا نموذج، فلا شيء يُنزَّل ولا شيء يُسأل عنه.** إيجادُ أركان الصفحة الأربعة يجري بالحساب: تدرّجُ الصورة، وتصويتٌ للخطوط المستقيمة التي فيها، وفحصُ ما تحت كل ضلع من أضلاع المستطيل الفائز فعلاً. لا أوزان، ولا زمن تشغيل استدلال، ولا شيء يُجلَب عند أول استعمال، ولا شيء يتصرّف على مستند غيرك تصرّفاً غير الذي يتصرّفه على مستندك — انظر `src/detect.js`.
- **المستند لا يحمل تاريخاً ولا مؤلفاً ولا اسم جهاز.** المسحُ شيء يرسله الناس إلى الناس، وغالباً لأن مكتباً طلبه. والشيء الوحيد الذي يُكتَب في ملف PDF عدا الصفحات نفسها هو اسم هذه الأداة، وعنوانٌ إن كتبت واحداً. فلا تاريخ إنشاء، ولا مؤلف، ولا رقم تسلسلي، ولا شيء مشتقّ من ساعتك ولا من أسماء ملفاتك ولا من حاسوبك — انظر `src/document.js`.
- **لا شيء هنا يجلب شيئاً.** لا يوجد `fetch` ولا `XMLHttpRequest` ولا `sendBeacon` في أي موضع من `src/`. والعمل هو `getImageData`، وبعض الحلقات على البايتات، ومرمِّز JPEG الخاص بالمتصفح — وكلها مثبَّتة على جهازك أصلاً.
- **يعمل دون اتصال.** اقطع الاتصال بالشبكة، وتبقى الأداة كما هي، لأنه لم تكن فيها خطوة شبكية قط. وهذا أبسط برهان على الإطلاق — وهو الذي يستحق أن تجرّبه قبل أن تمسح جواز سفر.
**تحقّق بنفسك.** لا شيء مما سبق عليك تصديقه دون تحقق. تُولَّد هذه الصفحة من القوالب والإعدادات في المستودع بواسطة سكربت بناء يمكنك قراءته وتشغيله بنفسك، والنتيجة موجودة في فرع `dist` — فقارِن إذن بين ما يُقدَّم فعلا وما ينتجه بناء المصادر: https://github.com/A-Box-of-Tools/website
الملفات الجديرة بالقراءة أولا هي `config/site.toml` من أجل سياسة أمان المحتوى (Content-Security-Policy)، و`src/detect.js` لكيفية إيجاد الأركان دون نموذج من أي نوع، و`src/warp.js` للتعديل، و `src/clean.js` لكيفية قسمة الإضاءة غير المتساوية خارجاً.
كيف تمسح مستنداً بكاميرا هاتفك
صوِّر الصفحة. من فوقها، والصفحة كلها في الإطار وأركانها الأربعة ظاهرة أو تكاد. ولا يلزم أن تكون الصورة مواجِهة ولا أن تكون الإضاءة متساوية: فالميل والظلّ هما ما وُجِدت هذه الأداة له. والذي يهمّ ملءُ الإطار — فالصفحة المصوَّرة من عرض الغرفة ليس فيها تفصيل يُستعاد.
تحقّق من الأركان الأربعة. تُوجَد لك حين تُقرأ الصورة، وتقول الصفحة ذلك حين لا تكون واثقة — فالصفحة على مكتب بلون الورق نفسه يصعب حقاً رؤية حدّها. اضغط أي موضع على الصورة فيأتي أقرب ركن إلى إصبعك، أو صِل إلى واحد بـ Tab وحرّكه بمفاتيح الأسهم.
اختر ماذا يُفعَل بالضوء. «ملوَّنة، مع تسوية الإضاءة» يقيس الورق عبر الصفحة ويقسمه خارجاً، فيذهب الظلّ ويحتفظ الختم أو التوقيع بلونه. و«أبيض وأسود» يمضي أبعد وهو ما يجعل المسح صغيراً بما يكفي لإرساله بالبريد. وما تراه على الشاشة هو النتيجة الحقيقية، تنتجها الشيفرة نفسها التي تكتب الملف.
أضِف الصفحات الأخرى. كل صورة تضيفها تصير صفحة أخرى من المستند نفسه، بالترتيب الذي تُسرَد به، وكل واحدة تحتفظ بأركانها هي. والأسهم التي على صفحة في الشريط تحرّكها أقدم أو أحدث.
احفظ ملف PDF، وافتحه قبل أن ترسله. يُكتَب المستند هنا، في ذاكرة هذه الصفحة. ولم يُرفَع شيء لصنعه، ولم يُبلَّغ عنه شيء إلى أي مكان.
النسخة الأطول
كيف تمسح مستنداً ضوئياً بهاتفكما الذي يفصل صورةً فوتوغرافية لصفحة عن مسحٍ ضوئي لها: الزاويةُ والضوءُ غيرُ المتساوي وحجمُ الملف. كيف تلتقط الصورة، وماذا تصلح بعدها، ولماذا لا يحتاج شيءٌ من ذلك إلى خادم.
لا. الصورة يُفكّ ترميزها وتُعدَّل وتُنظَّف وتُكتَب في ملف PDF بمتصفحك أنت على جهازك أنت. لا تملك هذه الأداة أي وظيفة شبكية على الإطلاق — فهي لا تجلب شيئاً ولا ترسل شيئاً — و Content-Security-Policy الخاصة بالصفحة تُسمّي كل عنوان يجوز لها الاتصال به، وليس واحد منها لنا. حمِّل الصفحة مرة، واقطع اتصالك بالإنترنت، وستظل تعمل.
كيف يجد أركان الصفحة دون نموذج؟
بالبحث عن الحوافّ المستقيمة الطويلة الأربع التي يتألف منها المستطيل. تُصغَّر الصورة، ويُؤخَذ التدرّج — أين تتغيّر الصورة، وفي أي اتجاه — وكل بكسل يقع على حافّة يصوّت للخطّ المستقيم الذي كان سيقع عليه. وتُزاوَج الخطوط القوية في مستطيلات مرشَّحة، ويُقيَّم كل مرشَّح بالمشي على أضلاعه الأربعة وسؤالِ كم من كل ضلع تحته حافّةٌ حقاً، وهل الأربعة حدُّ شيء واحد: فالصفحة أفتح مما حولها، أو أدكن، لكنها الشيء نفسه على الأضلاع الأربعة، وهو ما يمنع أن يُحسَب سطرُ نصّ أسفلَ الصفحة. ولا أوزان، ولا شيء يُنزَّل، والحساب هو الحساب نفسه لكل مستند يمرّ به.
الأركان التي وجدها خطأ. فماذا الآن؟
اسحبها. فالأركان موضع بداية ولا تكون قراراً أبداً: والمسح يُؤخَذ من حيث تنتهي الأربعة. اضغط أي موضع على الصورة فيقفز أقرب ركن إلى إصبعك، وذلك أيسر من إصابة مقبض صغير، ومفاتيح الأسهم تحرّك الركن الذي عليه التركيز بكسلاً في كل مرة. وتقول لك الصفحة كذلك حين تكون الأركان تخميناً لا اكتشافاً، وتعلّم على تلك الصفحة في الشريط — والصفحة الملقاة على مكتب بلونها تقريباً هي السبب المعتاد، لأنه لا حافّة هناك تقريباً لتُوجَد.
لماذا تخرج الصفحة المعدَّلة بالنسبة الصحيحة، لا مضغوطة؟
لأن النسبة تُستعاد من المنظور لا تُقاس من الحوافّ. فالصفحة المصوَّرة بميل يكون ضلعها البعيد مختصَراً، فالطريقة البديهية — خذ أطول زوج من الأضلاع المتقابلة وسمِّ ذلك النسبة — تنتج ورقة A4 قصيرة ظاهرةً للعين، وهو ما تعطيك إياه أكثر الماسحات على الويب. والحقيقة أن صورة المستطيل تحمل ما يكفي من المعلومات لاستعادة نسبة المستطيل وبُعد الكاميرا البؤري معاً، ما دامت الكاميرا عادية؛ وتلك نتيجةٌ لـ Zhang وHe من 2003، وهي ما يفعله src/geometry.js. وحيث تكون الصورة مواجِهة فلا منظور يُعمَل منه ولا حاجة إليه، لأن الحوافّ تكون حينئذ دقيقة — فيتراجع إليها، وتقول الصفحة أيُّ الاثنين أجاب.
ماذا يفعل «التنظيف» بالصورة بالضبط؟
يقسم الضوء خارجاً. فيُقاس سطوعُ الورق نفسه عبر الصفحة — شبكةٌ من المربّعات، وفي كل مربّع مئينٌ عالٍ من السطوع، والنصّ أدكن وأندر من أن يحرّكه — ويُقسَم كل بكسل على الورق المقدَّر عند تلك النقطة. فيبقى الحبر، متساوي الإضاءة، وقد ذهب الظلّ وذهب الخفوت. وليس ذلك رفعَ التباين: فرفعُ تباين صفحة مصوَّرة يجعل الجزء الفاتح أبيض والجزء الداكن أسود والكتابةَ التي في الجزء الداكن غير مقروءة، ولهذا تجعل «التسوية التلقائية» هذه الصور أسوأ لا أحسن.
لماذا وضع الأبيض والأسود أصغر بهذا القدر؟
لأن الصورة التي فيها لونان جزءٌ يسير حقاً من بيانات صورة فيها ستة عشر مليوناً، وهي مخزَّنة هكذا هنا: بتٌّ واحد لكل بكسل، مرصوصة ثمانيةً في البايت ومضغوطة ضغطاً دقيقاً، لا على هيئة JPEG لصورة بالأبيض والأسود. وعلى الصفحات نفسها يخرج أصغر بنحو ثمانية عشر ضعفاً من الوضع الملوَّن، فيحطّ عقدٌ من عشرين صفحة دون ميغابايت لا عند خمسة عشر أو نحوها. والعتبة عتبةُ Sauvola، وهي تقرّر كل بكسل في مقابل متوسط جواره وانتشاره لا في مقابل رقم واحد للصفحة كلها — وذلك ما يبقي الكتابة التي داخل ظلّ. وليس فيه درجات وسطى، فالصفحة التي عليها صورة فوتوغرافية ينبغي أن تستعمل أحد الوضعين الآخرين.
هل أستطيع وضع عدة صفحات في ملف PDF واحد؟
نعم. كل صورة تضيفها تصير صفحة أخرى، بالترتيب الذي تُسرَد به، وكل صفحة تحتفظ بأركانها هي — فرصّةٌ من الصفحات مصوَّرةٌ واحدةً بعد أخرى تصير مستنداً واحداً. والأسهم التي على كل صفحة في الشريط تحرّكها أقدم أو أحدث. وإعداد التنظيف مشترك بينها كلها عن قصد: فالصفحات في مستند واحد نُظِّفت على نحو مختلف تبدو مستندين.
هل يقرأ النصّ، فأستطيع البحث في ملف PDF؟
لا. فلا طبقة نصّ ولا تعرّف على الحروف: والذي يخرج صورةٌ لصفحة على صفحة. وفعلُ ذلك كما ينبغي يعني محرّك OCR، وهو عشرات الميغابايتات من النموذج تُنزَّل — وماسحُ مستندات يجلب نموذجاً قبل أن يستطيع قراءة كشف راتبك كان سيكون ماسحاً له سببٌ للاتصال ببيته عن كشوف الرواتب. فإن احتجت إلى النصّ، فوضع الأبيض والأسود ينتج بالضبط صنف الملفات التي تعمل عليها برمجيات OCR على جهازك أنت أحسن ما تعمل.
خرجت ضبابية. لماذا؟
في الغالب الأعم لأن الصفحة كانت صغيرة في الصورة. واللوحة التي تحت المعاينة تقول كم ملأت الصفحةُ من الإطار وكم يبلغ ذلك تقريباً من النقاط في البوصة عبر ورقة بذلك المقاس — ودون نحو 150 DPI يبدو المسح المطبوع ناعماً، ولا تستطيع أداةٌ فعل شيء بتفصيل لم يكن في الملف قط. اقترب بدل أن تكبّر، واثبت، ودع الكاميرا تركّز على الصفحة قبل أن تضغط الزر. واهتزازُ الكاميرا هو السبب الآخر، وهو غير قابل للاستعادة كذلك.
هل هو مجاني، وهل أحتاج إلى حساب؟
هو مجاني، ولا حساب ولا تسجيل دخول ولا فترة تجريبية ولا حدّ للصفحات ولا علامة مائية. ولا حدّ لحجم الصور كذلك، إذ لا خادم يدفع ثمنها — فالعمل يجري على جهازك أنت. ويحمل الموقع إعلانات، وهي ما يدفع تكاليفه؛ ولا يُعطى المعلنون شيئاً عن مستنداتك.